Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 理解三元语句_Php_Ternary - Fatal编程技术网

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。请参阅我的编辑。