PHP If/Else语句没有括号

eli*_*rel 11 php

以下是始终可接受的代码吗?它似乎工作,但它是否始终适用于所有版本的PHP?

if ($x > $y)
    echo 'x is greater';
elseif ($x == $y)
    echo 'equal';
else
    echo 'y is greater';
Run Code Online (Sandbox Code Playgroud)

谢谢.

Joh*_*n C 12

这在版本中是可以接受的,并且只要你想在每个控制块中只做一件事就可以工作.使用括号确实有助于更容易地跟踪块的开始和结束位置,以及何时需要再添加一个语句的未来校对.

这篇文章很好地总结了PHP中if/else块的各种选项.


Chr*_*fer 8

这工作得很好,并且是许多语言中快速执行 if 的常用方法。如前所述 - 如果您使用多行代码,则需要将其放在带有括号的块中。

例如这里:

if (x == 1)
 echo "x is one";
 echo "one is x";
Run Code Online (Sandbox Code Playgroud)

结果将是,如果 x == 1,则将回显“x is one”,而无论 x==1 与否,每次都会回显“one is x”。

要使这两行代码仅在条件为真时执行,您需要将其包含在一个块中。

if (x == 1)
{
 echo "x is one";
 echo "one is x";
}
Run Code Online (Sandbox Code Playgroud)