【发布时间】:2012-04-10 06:12:02
【问题描述】:
说,你有这样的条件;
if ($condition_1 && $condition_2)
你可以选择写成
if ($condition_2 && $condition_1)
现在,如果条件_1 需要 1 毫秒来判断它是真还是假,而另一方面,条件_2 需要更长的时间,比如 1000 毫秒!,你会将上述条件写成哪种方式?右边慢的还是左边慢的?
我假设当发现其中一个条件为 FALSE 时,PHP 不会费心检查另一个条件是否为 TRUE。如果真是这样,那将是本世纪最大的惊喜!
【问题讨论】:
-
如果函数在 if 语句中以 1000 毫秒的速度运行,你最大的问题不是哪个函数先运行
-
这被称为short-circuit evaluation,PHP 做到了。试试看。
-
@andreas!这是一个假设性的问题,我可以用 1ms 与 2ms 来表达这个问题,那时,我敢肯定有人会建议,为什么要打扰。 :)
-
顺便说一句,这就是为什么像
mysql_query() or die();这样的声明有效的原因。die()只会在mysql_query()返回 false 时运行。
标签: php performance short-circuiting