PHP 短路评估
PHP short-circuit evaluation
我有这个代码:
if (!in_array('array_item', $body) || !is_int($body['array_item']))
throw new Exception();
现在由于短路,如果 $body
中不存在 array_item
,我希望 is_int
不会执行。但是我仍然收到 PHP 关于 "undefined index array_item" 的投诉,我认为这是来自 $body['array_item']
.
有人可以向我解释为什么 $body['array_item']
被执行而 is_int
没有被执行吗?
in_array
looks for a value in an array. If you want to see, if a key exists, use array_key_exists
改为
if (!array_key_exists('array_item', $body) || !is_int($body['array_item']))
throw new Exception();
我有这个代码:
if (!in_array('array_item', $body) || !is_int($body['array_item']))
throw new Exception();
现在由于短路,如果 $body
中不存在 array_item
,我希望 is_int
不会执行。但是我仍然收到 PHP 关于 "undefined index array_item" 的投诉,我认为这是来自 $body['array_item']
.
有人可以向我解释为什么 $body['array_item']
被执行而 is_int
没有被执行吗?
in_array
looks for a value in an array. If you want to see, if a key exists, use array_key_exists
改为
if (!array_key_exists('array_item', $body) || !is_int($body['array_item']))
throw new Exception();