PHP短路评估

时间:2016-09-13 15:47:15

标签: php operators short-circuiting

我有这段代码:

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的原因吗?

1 个答案:

答案 0 :(得分:5)

in_array在数组中查找。如果您想查看,如果存在密钥,请使用array_key_exists代替

if (!array_key_exists('array_item', $body) || !is_int($body['array_item']))
    throw new Exception();