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

时间:2016-09-06 08:43:32

标签: php

如果我的值等于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;
}

2 个答案:

答案 0 :(得分:1)

您可以使用trenary运算符

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

答案 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;
    }
}

希望这有帮助