理解三元声明

Mac*_*Man 0 php ternary

我已经准备好了一些旧的代码,并且遇到了这个问题:

$sal = isset($_REQUEST['c_sal']) ? " " : ($_REQUEST['sal'] ? (Valid($_REQUEST['sal']) ? $_REQUEST['sal'] : false) : null);
Run Code Online (Sandbox Code Playgroud)

我正试图弄清楚它的作用.我知道它正在进行某种形式的验证......但是如何将其恢复为简单的if elseif语句?

所以我可以准确理解它在做什么?

Geo*_*rge 7

以下三元操作

$sal = isset($_REQUEST['c_sal']) ? " " : ($_REQUEST['sal'] ? (Valid($_REQUEST['sal']) ? $_REQUEST['sal'] : false) : null);
Run Code Online (Sandbox Code Playgroud)

与以下if语句相同:

if(isset($_REQUEST['c_sal'])){
    $sal = " ";
} else {
    if($_REQUEST['sal']){
        if(Valid($_REQUEST['sal'])){
             $sal = $__REQUEST['sal'];
        else {
             $sal = false;
        }
    } else {
        $sal = null;
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:为您的信息.没有你的功能的三元:

$sal = isset($_REQUEST['c_sal']) ? " " : (isset($_REQUEST['sal']) ? $_REQUEST['sal'] : null);
Run Code Online (Sandbox Code Playgroud)