Руководство по PHP
Пред. |  | След.

# count

(PHP 3, PHP 4 , PHP 5)

count -- Посчитать количество элементов массива или количество свойств объекта

## Описание

int count ( mixed var [, int mode] )

Возвратить количество элементов переменной var, которая обычно является array, или любым другим объектом, который может содержать хотя бы один элемент.

Для объектов count() возвращает количество нестатических свойств, не принимая во внимание видимость. Если у вас включена поддержка SPL, вы можете перехватить count(), реализуя интерфейс Countable. Этот интерфейс имеет только один метод, count(), который возвращает значение функции count().

Если var не является объектом или массивом, будет возвращена 1. За одним исключением: если var - `NULL`, то будет возвращён 0.

> Замечание: Дополнительный параметр mode был добавлен начиная с PHP 4.2.0.

Если дополнительный параметр mode установлен в `COUNT_RECURSIVE` (или 1), count() будет считать количество элементов массива рекурсивно. Это особенно полезно для подсчёта всех элементов многомерных массивов. Предустановленное значение параметра mode - 0. count() не обнаруживает бесконечную рекурсию.

Предостережение
count() может возвратить 0 для переменных, которые не установлены, но также может возвратить 0 для переменных, которые инициализированы пустым массивом. Используйте функцию isset() для того, чтобы протестировать, установлена ли переменная.

Пожалуйста, см. раздел этого руководства Array для того, чтобы получить детальное представление о реализации и использовании массивов в PHP.

Пример 1. Пример использования count()
`<?php $a[0] = 1; $a[1] = 3; $a[2] = 5; $result = count($a); // $result == 3 $b[0] = 7; $b[5] = 9; $b[10] = 11; $result = count($b); // $result == 3; $result = count(null); // $result == 0; $result = count(false); // $result == 1; $obj = new StdClass; $obj->foo = 'A property'; $obj->bar = 'Another property'; $result = count($obj); // $result == 2; ?>`

Пример 2. Пример рекурсивного использования count() (PHP >= 4.2.0)
`<?php $food = array('fruits' => array('orange', 'banana', 'apple'), 'veggie' => array('carrot', 'collard', 'pea')); // рекурсивный count echo count($food, COUNT_RECURSIVE); // output 8 // обычный count echo count($food); // output 2 ?>`

См. также is_array(), isset() и strlen().

Пред. | Начало | След.
compact | Уровень выше | current