count
(PHP 4, PHP 5, PHP 7, PHP 8)
count —
Подсчитывает количество элементов в массиве или в объекте Countable
Список параметров
value
-
Массив или объект, который реализует интерфейс Countable.
mode
-
Функция count() будет рекурсивно подсчитывать элементы массива,
если для необязательного параметра mode установили значение
COUNT_RECURSIVE (или 1).
Это, в частности, полезно для подсчёта элементов многомерных массивов.
Предостережение
Функция count() умеет обнаруживать рекурсию, чтобы избежать
бесконечного цикла, но для каждого такого случая будет выдавать ошибку уровня
E_WARNING (если массив содержит себя
больше одного раза), и возвращать значение выше, чем ожидалось.
Возвращаемые значения
Функция возвращает количество элементов в параметре value.
До PHP 8.0.0, если параметр не был ни массивом (array),
ни объектом (object), который реализует интерфейс Countable,
возвращалось значение 1,
если значение параметра value не было равно null,
тогда возвращалось значение 0.
Примеры
Пример #1 Пример подсчёта элементов массива функцией count()
<?php
$a[0] = 1;
$a[1] = 3;
$a[2] = 5;
var_dump(count($a));
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
?>
Результат выполнения приведённого примера:
Пример #2
Пример вызова функции count() на значении с неисчисляемым типом,
которое не принадлежит объединению типов Countable|array (плохой пример — не делайте так)
<?php
$b[0] = 7;
$b[5] = 9;
$b[10] = 11;
var_dump(count($b));
var_dump(count(null));
var_dump(count(false));
?>
Результат выполнения приведённого примера:
int(3)
Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable .. on line 12
Пример #3 Пример рекурсивного использования функции count()
<?php
$food = array('fruits' => array('orange', 'banana', 'apple'),
'veggie' => array('carrot', 'collard', 'pea'));
// рекурсивный подсчёт
var_dump(count($food, COUNT_RECURSIVE));
// обычный подсчёт
var_dump(count($food));
?>
Результат выполнения приведённого примера:
Пример #4 Объект, который реализует интерфейс Countable
<?php
class CountOfMethods implements Countable
{
private function someMethod() {}
public function count(): int
{
return count(get_class_methods($this));
}
}
$obj = new CountOfMethods();
var_dump(count($obj));
?>
Результат выполнения приведённого примера:
Смотрите также
- is_array() - Определяет, представляет ли собой переменная массив
- isset() - Определяет, объявили ли переменную и отличается ли её значение от null
- empty() - Проверяет, пуста ли переменная
- strlen() - Получает длину строки
- is_countable() - Проверяет, счётно ли значение переменной
- Массивы