I execute code in PHP 5.3.3.
<?php $arr1 = array(); var_dump(empty($arr1)); $arr2; var_dump(empty($arr2)); $arr3 = array(0); var_dump(empty($arr3)); $arr4 = array(null); var_dump(empty($arr4)); $arr5 = array(false); var_dump(empty($arr5)); $arr6 = array(""); var_dump(empty($arr6)); $arr7 = array(" "); var_dump(empty($arr6)); ?> Result of performance
bool(true) bool(true) bool(false) bool(false) bool(false) bool(false) bool(false) It does not match the documentation, which indicates that it returns FALSE if the var exists, and contains a non-empty and non-zero value. Otherwise, returns TRUE. the following values are considered empty:
"" (пустая строка) 0 (целое число) 0.0 (дробное число) "0" (строка) NULL FALSE array() (пустой массив) How can this be explained. Is the result different in PHP 3 compared to PHP 4 or 5?