2011-08-24 277 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

正如你所說,這兩種方法是相同的。唯一的區別是清晰度。我相信第二種方法比第一種更清晰。您應該與其他開發項目的開發人員討論您的約定,並將標準設置爲編碼。一致性是最重要的事情。

第一種方法的缺點是很難判斷您是否打算使用==而不是僅僅使用=。在第二種方法中,不存在這種模糊性。