PHP || и && логическая оптимизация

Я немного помешан на оптимизации (по крайней мере, по моему определению), и этот вопрос не дает мне покоя уже довольно давно.

Мне интересно, делает ли PHP некоторую оптимизацию для && и ||: Возьмем следующий пример:

$a = "apple";
$b = "orange";
if ($a == "orange" && $b == "orange") {
    //do stuff
}

Когда этот код выполняется, он проверяет, равно ли $a «оранжевому». В данном случае это не так. Однако есть оператор &&. Поскольку первая часть ($a == "оранжевый") уже вернула false, будет ли PHP по-прежнему проверять, равен ли $b "оранжевому?"

У меня тот же вопрос для ||:

$a = "orange";
$b = "orange";
if ($a == "orange" || $b == "orange") {
    //do stuff
}

Когда он проверяет, равно ли $a «оранжевому», он возвращает true. Так как это сделало бы || оператор возвращает true, будет ли PHP даже проверять вторую часть || (поскольку мы уже знаем, что это будет правдой)?

Надеюсь, я все понял и надеюсь, что у кого-то есть ответ для меня. Спасибо!

6
задан fruitcup 8 April 2012 в 02:53
поделиться