为什么在php中需要此语句

为什么在php中需要此语句,php,Php,这个语句是如何用php命名的 if($a) $b = "Some"; 我经常在小组项目中遇到这种说法。我不喜欢她,因为我不明白它是如何运作的。那么它是如何工作的呢?例如,php如何知道这个构造的结尾,因为z{}是空的?当有利于使用时: if($a) $b = "Some"; 比: 对不起,如果这个问题很愚蠢的话。但是我想理解为什么这个语句不需要{} 感谢对于单行语句,您不必提供大括号({}) 但为了更好的可读性和避免任何错误,如果以后可能需要添加多个语句,建议使用块语句 当您省略大

这个语句是如何用php命名的

if($a)
   $b = "Some";
我经常在小组项目中遇到这种说法。我不喜欢她,因为我不明白它是如何运作的。那么它是如何工作的呢?例如,php如何知道这个构造的结尾,因为z
{}
是空的?当有利于使用时:

if($a)
  $b = "Some";
比:

对不起,如果这个问题很愚蠢的话。但是我想理解为什么这个语句不需要
{}

感谢对于单行语句,您不必提供大括号(
{}

但为了更好的可读性和避免任何错误,如果以后可能需要添加多个语句,建议使用块语句

当您省略大括号时,它将只将下一个语句视为条件体

if ($x) echo 'foo';

if ($x) { echo 'foo'; }
if($a) {
    $b = "Some";
}
但请记住

if ($x)
  echo 'foo';
  echo 'bar';
将始终打印“bar”

内部情况则相反:if将只查看下一个表达式,但PHP将{}中的所有内容都视为单个“分组”表达式


其他控制语句(foreach等)也是如此。如果有多个
if
语句,您将遇到问题的噩梦。上述(不使用大括号)仅适用于第一组
if
语句


第二件事是,如果您在代码中添加大括号
{….}
,则会在代码中添加可读性
,并且代码看起来是有组织的

if
语句在其条件为
true
时执行以下语句。以下语句可以是单个语句,也可以是与
{}
组合在一起的一组语句。您可以使用
{}
,即使没有
,如果
,它自己也做不了什么

// pretty useless, but valid
{
    echo 'Foo';
    echo 'Bar';
}

// valid, one statement following
if (true) echo 'Baz';

// valid, group of statements following
if (true) {
    echo 'Foo';
    echo 'Bar';
}

根据定义,if语句只读取它后面的一条语句。如果您有许多语句,您应该使用前面提到的
{}

将它们分组为一个,这是单个If语句的缩写。只需提供更多信息:

if($a)
    $b = "Some";

if ($x) { echo 'foo'; }
if($a) {
    $b = "Some";
}
但请记住

if($a)
    $b = "Some";
    $c = "More";
类似于

if($a) {
    $b = "Some";
}
$c = "More";

请尝试并测试此代码

$b = "testing";
if($b == "testing")
    echo "This is if";
    echo "This is another if";
    echo "This is another";
    echo "This is so on";
这里我只使用
if
,所以我不需要定义范围
if
条件下写大括号,我可以使用多条消息,在下面的代码中我使用else,也不需要定义范围或大括号。但是在
中,如果有多行代码,你会混淆你自己的代码,其他程序员也会混淆

$a = "test";
if($a == "test")
    echo "This is if";
else
    echo "This is else";
但是,例如,如果我创建一个if语句,它在
if
正文中包含一行消息,就像上面的代码一样,它将不会出现任何错误,但是如果我在
if
正文中再添加一行代码消息,它将返回错误

$a = "test";
if($a == "test")
    echo "This is if";
    echo "This is if 2";
else
    echo "This is else";
所以我必须用大括号来表示
if
这样的条件

$a = "test";
if($a == "test") {
    echo "This is if";
    echo "This is if 2";
} else
    echo "This is else";

现在它不会返回错误,因为我在
if
条件中使用了大括号。记住
if
正文中的一行代码不会返回任何错误,但是
if
条件中的第二行代码会返回错误。大括号将定义您的
if
正文的范围,正如您在第三段代码中所看到的那样,我在
else
中没有使用大括号,因为它有一行代码消息。

只是简写而已。我个人从来没有使用过这种方法,因为它会让其他开发人员感到困惑,因为他们不知道IF条件endsy你在没有学习基础知识的情况下开始编码了吗?@SalmanA,我用php编程已经有4年多了,但我以前没有使用过这种结构。因为这有时让我困惑。检查我(@user2727841)的答案。。。测试一下,你就会明白。