在if语句中分配值?

时间:2011-08-24 01:53:41

标签: php codeigniter coding-style if-statement

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

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');

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

1 个答案:

答案 0 :(得分:2)

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

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