2016-09-06 28 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; 
    } 
} 

希望这有助于