我有下面的代码
<?php
$error = array();
$error['something'] = false;
$error['somethingelse'] = false;
if (!empty($error))
{
echo 'Error';
}
else
{
echo 'No errors';
}
?>
然而,empty($error)仍然返回true,即使什么都没有设置。
哪里不对?
我有下面的代码
<?php
$error = array();
$error['something'] = false;
$error['somethingelse'] = false;
if (!empty($error))
{
echo 'Error';
}
else
{
echo 'No errors';
}
?>
然而,empty($error)仍然返回true,即使什么都没有设置。
哪里不对?
当前回答
试着用sizeof检查它的大小,如果0没有元素。
其他回答
零元素数组转换为false
http://php.net/manual/en/language.types.boolean.php
试着用sizeof检查它的大小,如果0没有元素。
<?php
if(empty($myarray))
echo"true";
else
echo "false";
?>
从php文档:
如果var具有非空和非零值,则返回FALSE。
以下东西被认为是空的:
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
var $var; (a variable declared, but without a value in a class)
函数empty()对测试空数组不起作用! 例子:
$a=array("","");
if(empty($a)) echo "empty";
else echo "not empty"; //this case is true
函数是必要的:
function is_array_empty($a){
foreach($a as $elm)
if(!empty($elm)) return false;
return true;
}
好吧,这是一个非常老的问题:),但我发现这个帖子在寻找一个解决方案,我没有找到一个好的。
再见 (英语不好意思)