在循环之前检查(使用PHP)变量的正确方法?

时间:2016-09-23 08:54:43

标签: php loops

在循环变量之前(应该是一个数组) 我会做以下测试:

if(
        !empty($arrJobs)    &&
        is_array($arrJobs)  &&
        count($arrJobs)
){
foreach ($arrJobs as $item) {
  //loop tasks
}
}

我也看过使用if(sizeof($ arrJobs)> 0)但是如果$ arrJobs是一个整数(我不能信任输入)它会通过我会尝试循环整数...很奇怪。

在循环遍历数组之前,是否有更简洁,更全面的方法来执行此测试?

2 个答案:

答案 0 :(得分:1)

检查你是否将ARRAY循环到FOREACH是重要的,否则PHP会给你错误... FOREACH期望参数为ARRAY ..

你可以使用IS_ARRAY ..我相信这就足够了。

但检查它是否为空将是非常好的练习...我正在使用COUNT()来检查ARRAY是否为空。

答案 1 :(得分:0)

除了is_array之外你不需要检查任何东西:如果它是空的,PHP就不会循环。

此外还有一个建议:如果那些if有意义(不是那种情况,但对这个解释有帮助),你应该分开“提前退出”(作为编码风格,因为它提高了可读性)

if (empty($arrJobs)) {
 return;
}

if (!is_array($arrJobs)) {
 return;
}

if (count($arrJobs)) {
 return;
}