我正在学习PHP中的三元表达式,并且想知道是否有人可以验证以下两个代码块是否与结果相同?
$caption = $_POST['caption'] == '' ? NULL : $_POST['caption'];
以上是否与以下相同?
if ( $_POST['caption'] == '' ) {
$caption = NULL;
}
else {
$caption = $_POST['caption'];
}
答案 0 :(得分:2)
是的,他们是一样的。
$vn = condition ? expression1:expression2;
与
相同if(condition) {
$vn = expression1;
}
else {
$vn = expression2;
}
答案 1 :(得分:0)
你的病情没问题。但请确保caption
数组中有$_POST
个密钥。
$caption = empty($_POST['caption']) ? NULL : $_POST['caption'];
OR
$caption = (isset($_POST['caption']) && $_POST['caption'] == '') ? $_POST['caption'] : NULL;
在这种情况下,
$a = '';
var_dump(isset($a)); // TRUE
var_dump(empty($a)); // TRUE