【发布时间】:2011-05-19 16:25:17
【问题描述】:
假设我有这样的事情:
if(1 == 0 && do_stuff()) {
...
}
显然 1 不是 0,因此没有必要检查其他条件。那么 PHP 曾经运行过do_stuff() 吗?
【问题讨论】:
-
如果你总是希望“do_stuf”被执行,你当然可以把它作为if中的第一个条件。详情见我的回答。
标签: php function conditional
假设我有这样的事情:
if(1 == 0 && do_stuff()) {
...
}
显然 1 不是 0,因此没有必要检查其他条件。那么 PHP 曾经运行过do_stuff() 吗?
【问题讨论】:
标签: php function conditional
否 - PHP 使用惰性求值(有时称为短路求值),因此如果逻辑 AND 中的第一个条件为假,它将不会尝试评估任何其他条件。
同样,如果您正在执行 OR 并且第一个条件为真,则不会评估第二个条件。
【讨论】:
$debug)。然后另一种方法是将最有可能失败的测试放在左侧。
不,在这种情况下它不会执行do_stuff()。
【讨论】:
如果第一个条件为假,那么 php 永远不会在 && 运算符中运行第二个条件
【讨论】: