PHP三元表达式/ If语句

时间:2016-08-12 04:06:18

标签: php if-statement ternary-operator

我正在学习PHP中的三元表达式,并且想知道是否有人可以验证以下两个代码块是否与结果相同?

$caption = $_POST['caption'] == '' ? NULL : $_POST['caption'];

以上是否与以下相同?

if ( $_POST['caption'] == '' ) {
    $caption = NULL;
}
else {
    $caption = $_POST['caption'];
}

2 个答案:

答案 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;
在这种情况下,

emptyisset函数非常有用。

$a = '';
var_dump(isset($a));      // TRUE
var_dump(empty($a));      // TRUE

isset() and empty() - what to use