2016-09-06 34 views
-3

如果我的值等於null,那麼我想分配值0而不是空值。我已經通過if語句實現了這一點,但是,它的大量代碼生成和我計劃添加更多社交網絡的方法是實現這一目標的更好方法。如果null分配值0,如果語句代碼重用

$google = $request->input('google'); 
$facebook = $request->input('facebook'); 

if ($request->input('google') == null){ 
    $google = 0; 
} else { 
    $google = 1; 
} 

if ($request->input('facebook') == null){ 
    $facebook = 0; 
} else { 
    $facebook = 1; 
} 

回答

1

您可以使用特雷納裏操作

$google = ($request->input('google') == null) ? 0 : 1; 
0

爲了防止重複相同的代碼爲每個社交網絡,你可以做到這一點。

$providers = array(
    'google', 
    'facebook', 
); 

foreach ($providers as $provider) { 
    if ($request->input($provider) == null) { 
     $$provider = 0; 
    } else { 
     $$provider = 1; 
    } 
} 

IMO缺點是創建一個動態的變量名,以防止這一點,你需要一些修改:

$providers = array(
    'google' => 0, 
    'facebook' => 0, 
); 

foreach ($providers as $providerKey => $providerValue) { 
    if ($request->input($providerKey) != null) { 
     $providers[$providerKey] = 1; 
    } 
} 

希望這有助於