这段代码的执行流程是什么?

Rah*_*jan 0 php

<?php
if (!print "hi")
    if (print "hello")
print "hi";
?>
Run Code Online (Sandbox Code Playgroud)

我认为打印,打印喜,然后它返回1,评估为0,如果没有达到嵌套,然后再打印一次.所以对我来说输出应该是:hihi但答案是嗨,为什​​么?

Que*_*tin 5

尽管压痕不好,但第三个print陈述是第二个if陈述的条件结果.

即它意味着相同:

<?php
if (!print "hi") {
    if (print "hello") {
        print "hi";
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

  • 并且正确缩进代码的一个很好的理由 (4认同)
  • 总是在PHP中使用大括号的充分理由. (2认同)