PHP Lazy Boolean Evaluation-ThrowExceptions

Exception or error:

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?

How to solve:

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…


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.


PHP does have short circuit evaluation. Your example would be the proper use of it:

Leave a Reply

Your email address will not be published. Required fields are marked *