$aaa 可能未赋值 $aaa['小明'] 可能未赋值
这个时候,有没有必要 判断$aaa 是否存在???
这个时候,有没有必要 $aaa['小明'] 是否存在???
if($aaa & $aaa['小明'] & $aaa['小明'] ===1)
and
if($aaa & $aaa['小明'] ===1)
and
if($aaa['小明'] === 1)
1
littleylv 2019-01-28 18:32:07 +08:00
isset($aaa['小明']) && $aaa['小明'] ===1
|
2
wuqingdzx 2019-01-28 18:39:39 +08:00
接一楼
isset() 判断一个变量是否存在,如果$aaa 不存在或者$aaa 不是一个数组,那么$aaa['小明']就更不可能存在了,所以返回 false。 然后这种问题有你发帖子的时间,你就写出代码跑起来了已经得到结果。 |
3
1762628386 2019-01-28 18:52:01 +08:00
不用的,直接 isset,千万别!empty
isset($arr['key']){ }else{ } |
4
aloyuu OP @wuqingdzx 因为最终目的是判断小明是否存在且等于 1 ,不在乎$aaa 下面是否有其它键名与键值
因为 小明等于 1,要运行事件 A , 不等于 1 则运行事件 B 所以我问题的关键是 [我并不关心$aaa 是否存在, 或 小明是否存在] , [ 有没有必要] [isset] [判断它] |
6
littleylv 2019-01-28 19:08:45 +08:00
@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-01-28 19:24:36 +08:00
如果你担心这个问题 你可以先 isset 判断该变量是否存在 然后在控制结构进一步判断该变量是什么对象、是否为空、等于什么不就好了吗?
|
8
masker 2019-01-28 19:34:55 +08:00 via Android
empty 不好吗
|
9
littleylv 2019-01-28 19:41:14 +08:00
@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-01-28 19:50:46 +08:00
if($aaa['小明'] ?? false){
} 这么判断是否赋值,不知道有没有问题呀 |
12
xiaotuzi 2019-01-29 07:22:06 +08:00 via iPhone
array_key_exists 判断 key 是否存在,然后再判断是否有对应的值。
|