为什么PHP以不同的方式处理悬挂的其他东西?

-9 php syntax

我有这段代码:

$a = false;
if ($a) 
    echo 'A'; if (false) echo 'B';
  else echo 'C';
Run Code Online (Sandbox Code Playgroud)

else声明似乎根据价值改变了"属于" $a.如果是true,它似乎将其解释为:

if ($a) 
{
    echo 'A';
    if (false) 
    {
        echo 'B';
    } 
    else 
    {
        echo 'C';
    }
}
Run Code Online (Sandbox Code Playgroud)

和打印AC.但如果$a = false,似乎将其解释为:

if ($a) 
{
    echo 'A';
    if (false) 
    {
        echo 'B';
    } 
}
else 
{
    echo 'C';
}
Run Code Online (Sandbox Code Playgroud)

和打印C.

我在这里错过了什么吗?

Mat*_*hew 11

你的第一个代码是

$a = false;
if ($a) {
    echo 'A';
}

if (false) {
    echo 'B';
}
else {
    echo 'C';
}
Run Code Online (Sandbox Code Playgroud)

当您不使用大括号时,只有下一个语句(语句,而不是行)作为该控件结构的一部分执行.它并不含糊,因为这种行为在编程语言中有明确的定义.