假设我在函数中没有括号的条件语句:
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);
}
}
答案 0 :(得分:4)
第一个版本是正确的,因为没有大括号,if
语句适用于if
语句的条件后只有一个语句。
所以这个:
if ($something) $this->some_function($str);
相当于:
if ($something) {
$this->some_function($str);
}
我同意the manual对此有点模糊,但其示例是关于单个语句,并提到为了将其他行合并到同一个条件中,您需要一个“语句组” ,用花括号表示:
通常你想要执行多个语句 有条件的。相反,您可以将多个语句组合成一个 声明组。
答案 1 :(得分:1)
绝对是第一个版本是正确的。请查看文档中的示例:http://php.net/manual/en/control-structures.if.php
答案 2 :(得分:1)
第一个是正确的。其中一个原因是,如果条件为假,第二个不会返回任何数组,这不是一个好习惯。
if ($something)
{
$this->some_function($str);
}
return array('user_id' => $user_id);
为此你需要额外的代码来使它具有容错能力。