Php 理解三元语句
我已经准备好思考一些旧代码,并且遇到了以下问题:Php 理解三元语句,php,ternary,Php,Ternary,我已经准备好思考一些旧代码,并且遇到了以下问题: $sal = isset($_REQUEST['c_sal']) ? " " : ($_REQUEST['sal'] ? (Valid($_REQUEST['sal']) ? $_REQUEST['sal'] : false) : null); 我想弄清楚它是干什么的。 我知道它在某一点上做了某种形式的验证。。但如何将其恢复为简单的if-elseif语句 所以我可以准确地理解它在做什么?下面的三元操作 $sal = isset($_REQUES
$sal = isset($_REQUEST['c_sal']) ? " " : ($_REQUEST['sal'] ? (Valid($_REQUEST['sal']) ? $_REQUEST['sal'] : false) : null);
我想弄清楚它是干什么的。
我知道它在某一点上做了某种形式的验证。。但如何将其恢复为简单的if-elseif语句
所以我可以准确地理解它在做什么?下面的三元操作
$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);
只需将其拆分为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;
}
}
谢谢,这很有道理。如果我想从中取出有效语句,然后将其还原为三元,可以这样做吗?
sal=isset($\u REQUEST['c\u sal'])?“”:($请求['sal']?$请求['sal']:空)代码>这看起来正确吗?我不想只是这样做,我也想了解它在做什么。这是无效的,而且你没有在任何地方使用valid()
函数。我不需要有效的函数,我想删除它。我贴的三元有什么问题?这与第一次删除有效声明的情况不一样吗?哦,我明白了,抱歉。你编辑了吗?这很好,只是您需要检查是否设置了$\u请求['sal']
,而不仅仅是检查它是否为false。请参阅我的编辑。