我正在 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));
?>
执行结果
bool(true) bool(true) bool(false) bool(false) bool(false) bool(false) bool(false)
它与文档不匹配,该文档声明如果 var 存在并且包含非空值和非空值,它将返回 FALSE。否则,返回 TRUE。以下值被视为空值:
"" (пустая строка)
0 (целое число)
0.0 (дробное число)
"0" (строка)
NULL
FALSE
array() (пустой массив)
这怎么解释。与 PHP 4 或 5 相比,PHP 3 中的结果是否不同?
对于数组,它
empty只会true说数组是否为空。那些。如果数组不包含任何元素。您的数组
$arr1是空的,不包含任何元素。$arr2根本不存在。随后的所有示例都包含一个非空数组,每个数组中都有一个元素。它是哪个元素
empty完全无关紧要。该数组至少包含一个元素,这意味着它不为空,这意味着false.这在文档中明确说明:
array() (пустой массив). 空数组被视为empty