【问题标题】:assigning values in an if statement?在 if 语句中赋值?
【发布时间】:2011-08-24 01:53:41
【问题描述】:

当使用代码点火器时,我创建了很多看起来像这样的函数;

function info($id){
  $r = $this->db->select('id', 'name', 'age')->from('users')->where('id', $id)->get();
  return ($r->num_rows() == 0 ? false : $r->result());
}

现在当我使用这个函数时,我也使用这个函数来检查用户是否存在并将其分配给一个变量。

所以它会被用作类似的东西

if( ($user = $this->user->info($_GET['id'])) === false )
  die('User not found');

//now we can continue and $user contains the user info

我的问题是,有什么理由这是一个坏主意吗?

据我所知,这与

相同
$user = $this->user->info($_GET['id']);
if( $user === false )
  die('User not found');

但在我看来实际上更容易理解。

【问题讨论】:

    标签: php codeigniter coding-style if-statement


    【解决方案1】:

    正如您所说,这两种方法是相同的。唯一的区别是清晰度。我相信第二种方法比第一种方法要清晰得多。您应该与从事您项目的其他开发人员讨论您的约定,并设置代码标准。一致性是最重要的。

    第一种方法的缺点是很难判断您是否打算使用== 而不仅仅是=。第二种方法就没有这种歧义了。

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 2011-10-30
      • 1970-01-01
      • 2020-01-20
      • 2020-08-07
      • 2011-10-31
      • 2021-08-13
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多