
$aaa 可能未赋值 $aaa['小明'] 可能未赋值
这个时候,有没有必要 判断$aaa 是否存在???
这个时候,有没有必要 $aaa['小明'] 是否存在???
if($aaa & $aaa['小明'] & $aaa['小明'] ===1)
and
if($aaa & $aaa['小明'] ===1)
and
if($aaa['小明'] === 1)
1 U7Q5tLAex2FI0o0g 2019 年 1 月 28 日 isset($aaa['小明']) && $aaa['小明'] ===1 |
2 wuqingdzx 2019 年 1 月 28 日 接一楼 isset() 判断一个变量是否存在,如果$aaa 不存在或者$aaa 不是一个数组,那么$aaa['小明']就更不可能存在了,所以返回 false。 然后这种问题有你发帖子的时间,你就写出代码跑起来了已经得到结果。 |
3 1762628386 2019 年 1 月 28 日 不用的,直接 isset,千万别!empty isset($arr['key']){ }else{ } |
4 aloyuu OP @wuqingdzx 因为最终目的是判断小明是否存在且等于 1 ,不在乎$aaa 下面是否有其它键名与键值 因为 小明等于 1,要运行事件 A , 不等于 1 则运行事件 B 所以我问题的关键是 [我并不关心$aaa 是否存在, 或 小明是否存在] , [ 有没有必要] [isset] [判断它] |
6 U7Q5tLAex2FI0o0g 2019 年 1 月 28 日 @aloyuu #5 不判断的话会报 warning 话说,这发帖的时间你写个 demo 运行试一下不就知道了吗? ~ cat a.php <?php if ($a['key'] === 1) { echo '1111'; } ~ php a.php PHP Notice: Undefined variable: a in /Users/YONG/a.php on line 2 Notice: Undefined variable: a in /Users/YONG/a.php on line 2 ~ cat b.php <?php $a = []; if ($a['key'] === 1) { echo '1111'; } ~ php b.php PHP Notice: Undefined index: key in /Users/YONG/b.php on line 3 Notice: Undefined index: key in /Users/YONG/b.php on line 3 |
7 zhuzhibin 2019 年 1 月 28 日 如果你担心这个问题 你可以先 isset 判断该变量是否存在 然后在控制结构进一步判断该变量是什么对象、是否为空、等于什么不就好了吗? |
8 masker 2019 年 1 月 28 日 via Android empty 不好吗 |
9 U7Q5tLAex2FI0o0g 2019 年 1 月 28 日 @masker #8 empty 一般慎用,因为 0/null/‘’(空字符串) 都会被判定为 true 比如 $a['key'] = 0; !empty($a['key']) && $a['key'] === 0 => false isset($a['key']) && $a['key'] === 0 => true 结果是不一样的 |
10 hanzhao 2019 年 1 月 28 日 if($aaa['小明'] ?? false){ } 这么判断是否赋值,不知道有没有问题呀 |
12 xiaotuzi 2019 年 1 月 29 日 via iPhone array_key_exists 判断 key 是否存在,然后再判断是否有对应的值。 |