count(null) === 0
이후 count(false) === 1
은 어떤 의미입니까?PHP에서 count (false)가 1을 반환하는 이유는 무엇입니까?
카운트 - 배열의 모든 요소 또는 개체의 일부를 카운트합니다. - 논리 값이 프리미티브가 아닌 배열이나
countables
때문에 이것은 더 적은 의미가 http://php.net/manual/en/function.count.php
.
count(null) === 0
이후 count(false) === 1
은 어떤 의미입니까?PHP에서 count (false)가 1을 반환하는 이유는 무엇입니까?
카운트 - 배열의 모든 요소 또는 개체의 일부를 카운트합니다. - 논리 값이 프리미티브가 아닌 배열이나
countables
때문에 이것은 더 적은 의미가 http://php.net/manual/en/function.count.php
.
count
은 요소 수를 반환합니다. false
은 하나의 요소 (부울 값)이지만 null
은 아무 것도 아니며 null
은 값이 아닙니다. 당신이 null
로 설정하여 배열에, 예를 들어, 항목을 변수를 파괴 할 수
참고 :
$a = array(1,2,3);
$a[1] = null;
var_dump(isset($a[1]));
당신은 더 이상 정의 false
$a[1]
때문에 얻을 수 없습니다.
당신이 거짓으로 동일한 작업을 수행하는 경우 :
이$a = array(1,2,3);
$a[1] = false;
var_dump(isset($a[1]));
당신은 $a[1]
이 부울 false
사실, @mario가 널이 아닌 것보다'count()'소스를 읽으면, 배열이나 객체는 1을 반환합니다. 배열과 셀 수있는 객체를 미리 카운트하는 함수에 대해 이상한 것입니다. 예제는 완전히 다른 경우입니다. $ a는 실제 배열입니다. 'FALSE'는 원시 부울 값입니다. 배열의 원소가 아닙니다. 예를 들어, 데이터베이스에서 여러 행을 가져 오는 get_rows_from_db 함수가 있거나 쿼리가 실패하면 false를 반환하는 경우를들 수 있습니다. if (is_array ($ result) && count ($ result)) 대신에'if (count (get_rows_from_db())) {}'가 충분할 것으로 기대할 것입니다 ... – max
. -1을 반환해도 더 의미가 있습니다. – max
로 설정 그리고 그것이 정의 된 방법 그냥되는
true
때문에 얻을 것이다 : https://github.com/ # php/php-src/blob/master/ext/standard/array.C# L285 – mario