I have a conditional statement thus:
if($boolean && expensiveOperation()){ ...}
Does PHP have lazy boolean evaluation, i.e. will it check $boolean
and if it is false not bother performing the expensive operation? If so, what order should I put my variables?
Yes it does. It's called short-circuit evaluation. See the comments on the documentation page...
As for the order, it performs the checks based on Operator Precedence and then left to right. So:
A || B || C
Will evaluate A first, and then B only if A is false, and C only if both A and B are false...
But
A AND B || C
Will always evaluate B || C
, since ||
has a higher precedence than AND
(not true for &&
).
Yes, PHP does short-circuit evaluation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With