У меня есть этот код: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