does the condition after && always get evaluated does the condition after && always get evaluated php php

does the condition after && always get evaluated


No--the second condition won't always be executed (which makes your examples equivalent).

PHP's &&, ||, and, and or operators are implemented as "short-circuit" operators. As soon as a condition is found that forces the result for the overall conditional, evaluation of subsequent conditions stops.

From http://www.php.net/manual/en/language.operators.logical.php

// --------------------// foo() will never get called as those operators are short-circuit$a = (false && foo());$b = (true  || foo());$c = (false and foo());$d = (true  or  foo());


Yes. The two blocks are the same. PHP, like most (but not all) languages, uses short-circuit evaluation for && and ||.


The two blocks ARE same.

PHP logical operators are "lazy", they are evaluated only if they are needed.The following code prints "Hello, world!":

<?php$a = 10;isset($a) || die ("variable \$a does not exist.");print "Hello, world!"?>

Other logical operators includes &&, and, or.

<?phpperform_action() or die ('failed to perform the action');?>

is a popular idiom.