开发者

PHP Lazy Boolean Evaluation

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 n开发者_运维百科ot 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.


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

http://en.wikipedia.org/wiki/Short-circuit_evaluation#Support_in_common_programming_languages

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜