我有下面的代码
<?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,即使什么都没有设置。
哪里不对?
当前回答
你也可以通过。
if(count($array) > 0)
{
echo 'Error';
}
else
{
echo 'No Error';
}
其他回答
数组中有两个元素,这并不意味着数组是空的。作为一个快速的解决方案,你可以做以下:
$errors = array_filter($errors);
if (!empty($errors)) {
}
Array_filter()函数的默认行为将从数组中删除所有等于null、0或false的值。
否则,在您的特定情况下,如果至少有一个元素具有“empty”值,empty()构造将始终返回true。
试着用sizeof检查它的大小,如果0没有元素。
从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($error)仍然返回true,即使什么都没有设置。
这不是empty()的工作方式。根据手册,它只在空数组上返回true。其他的都说不通。
Hi数组是一个对象,所以它是空类型或空白
<?php
if($error!=null)
echo "array is blank or null or not array";
//OR
if(!empty($error))
echo "array is blank or null or not array";
//OR
if(is_array($error))
echo "array is blank or null or not array";
?>