У меня есть этот код:
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
нет?
in_array
ищет значение в массиве. Если вы хотите увидеть, если ключ существует, используйте array_key_exists
вместо
if (!array_key_exists('array_item', $body) || !is_int($body['array_item']))
throw new Exception();
Других решений пока нет …