在PHP中,这些值总是会返回相同的值吗?
//example 1
$array = array();
if ($array) {
echo 'the array has items';
}
// example 2
$array = array();
if (count($array)) {
echo 'the array has items';
}
谢谢!
答案 0 :(得分:20)
从http://www.php.net/manual/en/language.types.boolean.php开始,它表示空数组被视为FALSE。
(引用): 转换为布尔值时,以下值被视为FALSE:
自
然后问题中说明的两个案例将始终按预期工作。
答案 1 :(得分:4)
那些将始终返回相同的值,但我找到了
$array = array();
if (empty($array)) {
echo 'the array is empty';
}
更具可读性。
答案 2 :(得分:1)
他们确实会。如果数组非空,则将数组转换为bool将为true,并且对于多个元素,数组的计数为true。
另请参阅:http://ca2.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting
答案 3 :(得分:1)
请注意,第二个示例(使用count()
)显着慢,在我的系统上至少50%(超过10000次迭代)。 count()
实际上计算数组的元素。我不是肯定的,但我想将一个数组转换为类似于empty()
的布尔值,并在找到至少一个元素后立即停止。