1

假设我在函数中有一个不带括号的条件语句:

function get_user_id() 
{
    if ($something) $this->some_function($str);
    return array('user_id' => $user_id);
}

我认为无括号语句是不好的做法......我想在 if 语句中添加括号,但语句在哪里结束?它是以第一个分号结尾还是函数结尾?

哪个是对的:

function get_user_id() 
{
    if ($something)
    {
       $this->some_function($str);
    }
    return array('user_id' => $user_id);
}

或者..

function get_user_id() 
{
   if ($something)
   {
      $this->some_function($str);
      return array('user_id' => $user_id);
   }           
}
4

3 回答 3

4

第一个版本是正确的,因为没有大括号,只有语句后面的一个if语句适用于该语句的条件if

所以这:

if ($something) $this->some_function($str);

相当于:

if ($something) {
    $this->some_function($str);
}

我同意手册对此有点含糊,但它的示例是关于单个语句,并提到为了将其他行合并到相同的条件中,您需要一个“语句组”,用花括号表示:

通常,您希望有多个语句有条件地执行。相反,您可以将多个语句组合成一个语句组。

于 2012-06-27T17:11:08.687 回答
1

肯定第一个版本是正确的。查看文档中的示例:http: //php.net/manual/en/control-structures.if.php

于 2012-06-27T17:13:57.400 回答
1

第一个是正确的。原因之一是如果条件为假,第二个不会返回任何数组,这不是一个好习惯。

 if ($something)
    {
       $this->some_function($str);
    }
 return array('user_id' => $user_id);

为此,您需要额外的代码来使其具有容错性。

于 2012-06-27T17:19:00.647 回答