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

PHP - How do I correctly use a "if(isset() && != NULL) || (isset() && != NULL)" statement?

您好,我在使用此函数中的 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) { ?>

有人可以阐明我做错了什么吗?

试试这个:

<?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
    }   
?>
if ($value['instagram_id'],  $value['instagram_id'])) {
}

仅当 isset() 的所有参数都已设置且不包含 null 时,这 return 才为真。

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

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

}

来自 Docs

empty() is essentially the concise equivalent to !isset($var) || $var == false

!empty 也会将 null 计算为 false