2016-09-06 4 views
-3

値がnullの場合はnullを代入する代わりに0を代入します。しかし、私はif文を使用してコード生成を多くし、ソーシャルネットワークを増やす予定です。これを実現するにはよりよい方法があります。nullの場合は値0を代入ifステートメントコードの再利用

$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

あなたはこれを行うことができ、各ソーシャルネットワークで同じコードを繰り返し防ぐためにtrenaryオペレータ

$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; 
    } 
} 

が、これは

を役に立てば幸い
関連する問題