2016-04-05 7 views
0

Я понимаю, что strlen - это правильная функция для использования, мне просто интересно, почему это происходит.Почему подсчет пустой строки возвращает 1?

Как происходит, если PHP в I echo count("");, он возвращает значение 1?

See example

Я бы ожидал, что он вернется 0, в отличие от 1.

+0

Уверен, что вы не ищете strln? –

+0

попробуйте прочитать [documentation] (http://php.net/manual/en/function.count.php) – j08691

+0

'count' для количества элементов массива. 'strlen' - количество символов в строке. –

ответ

7

подсчет количество элементов есть. Здесь вы получили строку, поэтому один элемент.

Пожалуйста read the doc:

Возвращает количество элементов в array_or_countable. Если параметр не является массивом или не является объектом с реализованным интерфейсом счетчика, будет возвращен 1. Существует одно исключение, если array_or_countable равен NULL, возвращается 0.

+0

Doh! Я не знаю, как я пропустил это. –

6

Как documentation говорит

Если параметр не является массивом или не является объектом с реализованного счетным интерфейс, 1 будет возвращен.

3

Вероятно, как следствие этого:

var_dump((array)""); 

... печать это:

array(1) { 
    [0]=> 
    string(0) "" 
} 

См Type Juggling для грязных деталей. official answer что 1 просто документально Возвращаемое значение:

Если параметр не является массивом или не является объектом с реализованного счетным интерфейс, 1 будет возвращен. Существует одно исключение, если array_or_countable равно NULL, возвращается 0.

Смежные вопросы