PHP - 如何正确使用" if(isset()&&!= NULL)|| (isset()&&!= NULL)"声明?

时间:2015-12-05 07:37:55

标签: php isset

嗨我在这个函数中遇到OR运算符有问题,我不确定为什么?

<?php if(isset($value['instagram_id']) && $value['instagram_id'] != NULL) || (isset($value['facebook_id']) && $value['facebook_id'] != NULL) || (isset($value['soundcloud_id']) && $value['soundcloud_id'] != NULL) || (isset($value['twitter_id']) && $value['twitter_id'] != NULL) || (isset($value['youtube_id'])) && $value['youtube_id'] != NULL) { ?>

有人可以说明我做错了吗?

3 个答案:

答案 0 :(得分:2)

嗯....如果你想在一个条件中评估所有语句,那么你可以将if语句减少到下面

if(!empty($value['instagram_id']) || !empty($value['facebook_id']) || !empty($value['soundcloud_id']) || !empty($value['twitter_id']) || !empty($value['youtube_id']) ) {

}
来自Docs

  

empty()基本上是!areset($ var)||的简洁等价物$ VAR   == false

!empty还会将null评估为false

答案 1 :(得分:0)

试试这个:

<?php 
    if((isset($value['instagram_id']) && $value['instagram_id']) ||
    (isset($value['facebook_id']) && $value['facebook_id']) ||
    (isset($value['soundcloud_id']) && $value['soundcloud_id']) ||
    (isset($value['twitter_id']) && $value['twitter_id']) ||
    (isset($value['youtube_id']) && $value['youtube_id'])){
        ... //TODO something
    }   
?>

答案 2 :(得分:0)

if ($value['instagram_id'],  $value['instagram_id'])) {
}

仅当isset()的所有参数都设置且不包含null时,才会返回true。