1

基本上

这是:

<?PHP if (false && crazyFunction()) : ?>

与以下相同:

<?PHP if (false) : ?>
    <?PHP if (crazyFunction()) : ?>

如果在第一个示例中评估 FALSE 是否仍会继续评估“crazyFunction”?

4

2 回答 2

2

&&操作员是一个循环操作员,这意味着一旦知道结果将是错误的,它将立即停止。

这意味着如果左侧部分的计算结果为假,它将停止并返回假。crazyFunction()在这个例子中永远不会被调用。

于 2013-03-11T13:54:00.073 回答
0

一旦知道布尔表达式的值,就不再执行它。

请注意老式 mysql 连接中的这个(已弃用)示例:

$db=mysql_connect_db('...') or die('Database error');

如果在第一部分之后mysql_connect返回的东西不是FALSE0NULL等,它不会执行 this die()

(不管这是否正确使用mysql_*函数)

于 2013-03-11T13:59:25.490 回答