首页 > php if 判断的问题。

php if 判断的问题。

有一段php的判断大家看看有没有更简洁的写法,或者别的方式可以实现

$cat_id = 0;
if(empty($a)){
    if(empty($b)){
        if(empty($c)){
            return 0;
            exit();
        }else{
            $cat_id = $c;
        }
    }else{
        $cat_id = $b;
    }
}else{
    $cat_id = $a;
}

    function checkEmpty($a, $b = '', $c = ''){
        if(empty($b) && empty($c)) exit();
        return empty($a) ? checkEmpty($b,$c) : $a;
    }

这个应该够简洁了!


不写嵌套就行了

可读性强

以简驭繁


喜欢这么写,没有嵌套

$cat_id = 0;

if($a) {
    $cat_id = $a;
    return;
}

if($b) {
    $cat_id = $b;
    return;
}

if($c) {
    $cat_id = $c;
    return;
}

return;

$cat_id = $a ? $a : ($b ? $b : ($c ? $c : 0));


$cat_id = 0;
if (!empty($a)) {
    $cat_id = $a;
} elseif (!empty($b)) {
    $cat_id = $b;
} elseif (!empty($c)) {
    $cat_id = $c;
} else {
    return 0;
}

应该是没有更简单的写法了,但是可以优化成

$cat_id = 0;
if (! empty($c)) $cat_id = $c;
if (! empty($b)) $cat_id = $b;
if (! empty($a)) $cat_id = $a;
if (empty($cat_id)) exit;

function test($a, $b, $c)
{
    if (empty($a)) {
        if (empty($b)) {
            if (empty($c)) {
                return 0;
            }
            return $c;
        }
        return $b;
    }
    return $a;
}

$cat_id = test($a, $b, $c);

$cat_id = $a ?: $b ?: $c ?: 0;
//对PHP版本有要求

$cat_id = 0;
while(1){
    if(empty($a)){
        $cat_id = $a;
        break;
    }
    if(empty($b)){
        $cat_id = $b;
        break;
    }
    if(empty($c)){
        $cat_id = $c;
        break;
    }
}
【热门文章】
【热门文章】