我做了一些研究,但我还没有找到我的问题的直接答案。
在循环之前进行计数是一种好方法吗?
这样做更好吗:
if(count(array) > 0){
foreach(array as entry){
}
}
或者
foreach(array as entry){
}
从我的角度来看,计数是一个额外的步骤,因为如果数组为空,我们将不会循环。
你怎么看待这件事 ?
如果数组中没有任何内容,则 foreach 循环将循环 0 次。检查前面的计数是不必要的。根据 $array 的可能值,您可能会更好地测试 is_array() 因为如果 $array 不是数组,foreach 将引发错误。
让我们尝试一些简单的测试;
测试 1
$array = "string";
foreach ( $array as $entry ) {
}
输出
Warning: Invalid argument supplied for foreach()
测试 2
$array = "string";
if (count($array) > 0) {
foreach ( $array as $entry ) {
}
}
输出
Warning: Invalid argument supplied for foreach()
测试 3
$array = "string";
if (is_array($array) || $array instanceof Traversable) {
foreach ( $array as $entry ) {
}
}
输出
No error
您不必一直验证......但是当您不确定该值时......您应该在循环之前检查它是否有效。
如果你去,count()
它类似于做is_array()
. 如果它不是数组,Foreach 会给你一个错误。
一个更好的方法,imo,是if(!empty($array)){