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

Dal*_*len 6 php if-statement

碰巧的是,在编写一些PHP代码时,我不小心;在if语句后面加了一个分号.例如:

if($a > 1);
{
   ....
}
Run Code Online (Sandbox Code Playgroud)

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

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

aio*_*obe 14

单个;可以读作"空语句"和

if($a > 1);
{
   ....
}
Run Code Online (Sandbox Code Playgroud)

相当于

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

// then execute the following block of code.
{
   ....
}
Run Code Online (Sandbox Code Playgroud)


我可以看到,当;添加时,条件似乎总是正确的

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