第二次检入或声明未执行

时间:2014-01-28 23:27:33

标签: php if-statement operators

在我的php应用程序中,我执行以下检查:

    if(($images = $main->get_images($data['id'])) || ($videos = $main->get_videos($data['id']))){
           (...)
        if($videos){
           (...)    
        }


        if($images){
           (...)
        }
    }

此操作会发回错误,说明$ videos未定义。我的猜测是,如果第一个陈述是真的,那么第二个陈述就不会被检查。是否有任何简洁的方法来执行第二次检查,即使是第一次检查也是如此,因为在这种情况下如果图像为真,则视频将被评估为假

2 个答案:

答案 0 :(得分:1)

没有办法。你需要把它重写成这样的东西......

$images = $main->get_images($data['id']);
$videos = $main->get_videos($data['id']);
if($images || $videos){
       (...)
    if($videos){
       (...)    
    }
    if($images){
       (...)
    }
}

仅仅是FYI ......操作顺序意味着您不需要将条件括在()括号中。在OR运算符(包括&&运算符)之前几乎所有内容都被计算出来。

祝你好运!

乔伊

答案 1 :(得分:0)

您可以使用empty()查看变量是否不存在或是否为空。例如

if(!empty($videos)) {
       (...)    
}