嗨我在这个函数中遇到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) { ?>
有人可以说明我做错了吗?
答案 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。