2011-08-24 134 views
0

当使用代码点火器时,我创建了很多看起来像这样的函数;在if语句中赋值?

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

,但我实际上认为更容易执行。

回答

2

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

第一种方法的缺点是很难判断您是否打算使用==而不是仅仅使用=。在第二种方法中,不存在这种模糊性。