Php if null赋值0,if语句代码重用

Php if null赋值0,if语句代码重用,php,Php,如果我的值等于null,那么我希望分配0的值,而不是null。我已经用我的if语句实现了这一点,但是,它需要大量的代码生成,我计划添加更多的社交网络,是否有更好的方法来实现这一点 $google = $request->input('google'); $facebook = $request->input('facebook'); if ($request->input('google') == null){ $google = 0; } else { $g

如果我的值等于null,那么我希望分配0的值,而不是null。我已经用我的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;
}

您可以使用trenary运算符

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

为了防止每个社交网络重复相同的代码,您可以这样做

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

foreach ($providers as $provider) {
    if ($request->input($provider) == null) {
        $$provider = 0;
    } else {
        $$provider = 1;
    }
}
在我看来,缺点是创建动态变量名,为了防止这种情况,您需要进行一些修改:

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

foreach ($providers as $providerKey => $providerValue) {
    if ($request->input($providerKey) != null) {
        $providers[$providerKey] = 1;
    }
}
希望这有帮助