我已经准备好考虑一些旧代码并且遇到过这个问题:
$sal = isset($_REQUEST['c_sal']) ? " " : ($_REQUEST['sal'] ? (Valid($_REQUEST['sal']) ? $_REQUEST['sal'] : false) : null);
我正在努力弄清楚它的作用。 我知道它正在进行某种形式的验证......但是如何将其恢复为简单的if elseif语句呢?
所以我可以准确理解它在做什么?
答案 0 :(得分:7)
以下三元操作
$sal = isset($_REQUEST['c_sal']) ? " " : ($_REQUEST['sal'] ? (Valid($_REQUEST['sal']) ? $_REQUEST['sal'] : false) : null);
与以下if语句相同:
if(isset($_REQUEST['c_sal'])){
$sal = " ";
} else {
if($_REQUEST['sal']){
if(Valid($_REQUEST['sal'])){
$sal = $__REQUEST['sal'];
else {
$sal = false;
}
} else {
$sal = null;
}
}
编辑:供您参考。没有你功能的三元:
$sal = isset($_REQUEST['c_sal']) ? " " : (isset($_REQUEST['sal']) ? $_REQUEST['sal'] : null);
答案 1 :(得分:4)
将其拆分为if / else等价物:
$sal = null;
if (isset($_REQUEST['c_sal'])) {
$sal = " ";
} else {
if ($_REQUEST['sal']) {
if (Valid($_REQUEST['sal'])) {
$sal = $_REQUEST['sal'];
} else {
$sal = false;
}
} else {
$sal = null;
}
}