基本上
这是:
<?PHP if (false && crazyFunction()) : ?>
与:
相同<?PHP if (false) : ?>
<?PHP if (crazyFunction()) : ?>
如果在第一个例子中评估了FALSE,它还会继续评估“crazyFunction”吗?
答案 0 :(得分:2)
&&
运算符是一个shotcircuit运算符,这意味着它一旦知道结果将是错误就会停止。
这意味着如果左侧部分的计算结果为false,则会停止并返回false。在此示例中永远不会调用crazyFunction()
。
答案 1 :(得分:0)
一旦知道布尔表达式的值,就不再执行它了。
请注意旧式mysql连接中的这个(已弃用)示例:
$db=mysql_connect_db('...') or die('Database error');
如果在第一部分mysql_connect
之后返回的内容不是FALSE
,0,NULL
等,则不会执行此die()
。
(无论使用mysql_*
函数是否正确)