if(); do,括号后面的括号是什么?

时间:2011-06-02 21:11:01

标签: php if-statement

在编写一些PHP代码时,我不小心在if语句后面添加了分号;。例如:

if($a > 1);
{
   ....
}

我认为PHP应该在这种情况下引发错误,但事实并非如此。这种语法应该有意义,我只是想知道它是什么。

对于我所看到的情况,当;被添加时,情况似乎总是如此,但我不确定这是什么意思。

2 个答案:

答案 0 :(得分:14)

单个;可以读作“空语句”和

if($a > 1);
{
   ....
}

相当于

if($a > 1)
    ;        // execute an empty statement if $a > 1

// then execute the following block of code.
{
   ....
}


  

我可以看到,当添加;

时,情况似乎总是如此

似乎只是因为无论if语句如何都执行了块。

答案 1 :(得分:1)

添加分号基本上会在大括号之前结束if块。事实并非如此,只是你在if中没有做任何事情。

如果你没有大括号,就这样想想:

if($a>1)
  echo "Yes";
echo "No";

在if中的第一个分号前做所有事情。所以在你的情况下,在第一个分号前没有任何东西,所以没有任何反应。