有谁可以解释为什么这会返回非空?
<?php
$attributes=array("description"=>"","quantity"=>"","price"=>"","discount"=>"");
if(empty($attributes))
echo 'empty';
else
echo 'non empty';
exit;
?>
答案 0 :(得分:5)
来自manual documentation for empty()
:
确定变量是否为空。 如果变量不存在或者其值等于FALSE,则该变量被视为空。如果变量不存在,则empty()不会生成警告。
在这种情况下,变量$attributes
存在,并且它不等于FALSE。因此empty()
将返回布尔值FALSE
。
检查每一个是否为空并回显一条消息:
foreach ($attributes as $key => $value) {
if (empty($value)) {
echo "'$key' is empty\n";
}
}
要检查 all 数组值是否为空:
if(!array_filter($attributes)) {
echo 'All values are empty';
}
检查任何数组值是否为空:
if (array_search('', $attributes) !== FALSE) {
echo 'One of the values in the array is empty';
}
答案 1 :(得分:0)
这是因为你有一个空字符串数组,它不是一个空数组。