0
我有这样的代码:PHP短路评价
if (!in_array('array_item', $body) || !is_int($body['array_item']))
throw new Exception();
现在由于短路我希望is_int
不若array_item
不存在$body
执行。不过,我仍然从PHP投诉“未定义索引array_item”,我认为这是从$body['array_item']
。
有人可以向我解释为什么$body['array_item']
执行,如果is_int
不是?
工作正常我的PHP 7.0.8安装。 '||'不发出警告。 –
@ chris85:错。如果它是'&&',则两者都必须进行测试。这就是为什么它是允许短路的“||”。如果'或'的任何部分是真的,那么整个事情就是真实的,这意味着后面的术语可以被跳过。 –
啊误读了。是的,这是有道理的。这里没有通知https://3v4l.org/hnHM8 – chris85