douyue3800 2012-06-27 17:10
浏览 33
已采纳

没有括号的条件语句在哪里结束?

Suppose I have a conditional statement without brackets in a function:

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

I think bracketless statements are bad practice... I want to add brackets to the if-statement but where does the statement end? Does is it end at the first semicolon or the end of the function?

Which is correct:

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

or..

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

3条回答 默认 最新

  • dovgqc2648 2012-06-27 17:11
    关注

    The first version is correct, as without braces, only one statement after the if statement applies to the conditions of the if statement.

    So this:

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

    Is equivalent to:

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

    I do agree that the manual is a bit vague about this, but its example is about a single statement, and mentions that in order to incorporate additional lines to the same conditional, you would need a "statement group", denoted by curly braces:

    Often you'd want to have more than one statement to be executed conditionally. Instead, you can group several statements into a statement group.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。