这是两行代码。谁能告诉我第一种方式和第二种方式有什么区别?我希望两者都做完全相同的事情。
$test = isset($_POST['test'])?$_POST['test']:[];
if(isset($_POST['test'])){
$test[] = $_POST['test'];
}
谢谢 !
这是两行代码。谁能告诉我第一种方式和第二种方式有什么区别?我希望两者都做完全相同的事情。
$test = isset($_POST['test'])?$_POST['test']:[];
if(isset($_POST['test'])){
$test[] = $_POST['test'];
}
谢谢 !
如果未设置,则第一个设置$test
为空数组$_POST['test']
。但是,第二个没有设置$test
为默认值。实际上,如果$_POST['test']
未设置,$test
则将不存在/未定义/等。
您需要$test = [];
在第二个开始时运行以存档完全相同的结果。
顶线将相当于
if(isset($_POST['test'])){
$test = $_POST['test'];
}else{
$test = [];
}
第一个使用三元运算符,它是 的简写,如果它不为空,则if (X) then $a = b else $a = c
设置$test
为$_POST['test']
,或者将 $test 设置为空数组。
第二个示例没有大小写,因此如果为空else
,它将保持$test
未定义。$_POST['test']
另请参阅 PHP 手册http://www.php.net/manual/en/language.operators.comparison.php中此页面的三元运算符部分。