如何解释“if”语句中的多个表达式?

时间:2013-03-11 13:49:43

标签: php if-statement expression

基本上

这是:

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

与:

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

如果在第一个例子中评估了FALSE,它还会继续评估“crazyFunction”吗?

2 个答案:

答案 0 :(得分:2)

&&运算符是一个shotcircuit运算符,这意味着它一旦知道结果将是错误就会停止。

这意味着如果左侧部分的计算结果为false,则会停止并返回false。在此示例中永远不会调用crazyFunction()

答案 1 :(得分:0)

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

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

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

如果在第一部分mysql_connect之后返回的内容不是FALSE,0,NULL等,则不会执行此die()

(无论使用mysql_*函数是否正确)