该代码的执行流程是什么?

时间:2018-07-20 12:50:07

标签: php

<?php
if (!print "hi")
    if (print "hello")
print "hi";
?>

我认为print会打印hi,然后返回1,该值的计算结果为0,因此如果未到达则嵌套,然后再打印hi一次。 因此,对我来说,输出应为: 嗨 但是答案是嗨,为什​​么呢?

2 个答案:

答案 0 :(得分:5)

尽管缩进不正确,但第三条print语句是第二条if语句的条件结果。

即意思是:

<?php
if (!print "hi") {
    if (print "hello") {
        print "hi";
    }
}
?>

答案 1 :(得分:2)

因为php不是python) 它不关心列表,如果省略括号,则仅第一行属于“ if”构造。 所以您的代码是:

if (!print "hi") {
    if (print "hello") {
        print "hi";
    }
}