如果PHP中的条件后面的分号 - 代码仍然有效

时间:2014-11-24 13:48:40

标签: php

考虑以下代码......

if ($condition); // <-- do not miss semicolon here!
{
    //...
}

在块内的代码工作之后。有人可以解释一下我为什么没有语法错误吗?

2 个答案:

答案 0 :(得分:3)

我建议你阅读这里的手册:

http://php.net/manual/en/control-structures.if.php

直接询问原因:you don't get a syntax error
- &gt;简单,因为没有语法错误!

您的代码是正确的,意思是:

if ($condition) ;
//  ^condition  ^if true execute that line

//same as
if ($condition)
    ;

//same example with other line if the condition is true
if ($condition) echo "true";

if ($condition)
    echo "true";

因此,如果条件为真,那么你的行会被执行:;并且没有任何意义。

它与以下相同:;;;;;它什么都不是!

在大多数情况下,您使用if语句:

if ($condition)
    echo $result;


if ($condition) {
    echo $result;
}

if ($condition) echo $result;

答案 1 :(得分:1)

因为您可以在{ }内编写任何代码而不使用 if

检查这个例子:

<?php

{
    echo 'Hi Man'; // it print Hi Man (without using if statment)
}

?>