PHP三元表达式/If语句
我正在学习PHP中的三元表达式,想知道是否有人可以验证以下两段代码是否相同,结果如何PHP三元表达式/If语句,php,if-statement,ternary-operator,Php,If Statement,Ternary Operator,我正在学习PHP中的三元表达式,想知道是否有人可以验证以下两段代码是否相同,结果如何 $caption = $_POST['caption'] == '' ? NULL : $_POST['caption']; 上面的和下面的一样吗 if ( $_POST['caption'] == '' ) { $caption = NULL; } else { $caption = $_POST['caption']; } 是的,它们是一样的 $vn = condition ? expr
$caption = $_POST['caption'] == '' ? NULL : $_POST['caption'];
上面的和下面的一样吗
if ( $_POST['caption'] == '' ) {
$caption = NULL;
}
else {
$caption = $_POST['caption'];
}
是的,它们是一样的
$vn = condition ? expression1:expression2;
与
if(condition) {
$vn = expression1;
}
else {
$vn = expression2;
}
你的情况很好。但请确保您有
标题
输入$\u POST
数组
$caption = empty($_POST['caption']) ? NULL : $_POST['caption'];
或
或函数在这种情况下很有用
$a = '';
var_dump(isset($a)); // TRUE
var_dump(empty($a)); // TRUE
我觉得不错。情况还行。确保$\u POST中存在标题键。使用空函数。像这样吗$caption=isset($_POST['caption'])=''?空:$_POST['caption'];为什么需要检查是否设置了$\u POST['caption']?如果$\u POST['caption']=''(空字符串),这不意味着自动设置了它吗?如果$\u POST数组中不存在标题键,并且如果您将条件写为**$\u POST['caption']=''**然后它会给你一个错误。我复制并粘贴了你的代码在我的脚本中,我仍然得到错误:注意:未定义的索引:caption。这样写你的条件:-$caption=(isset($\u POST['caption'])&&$\u POST['caption']=''$_POST['caption']:空;谢谢,这就是我要找的。
$a = '';
var_dump(isset($a)); // TRUE
var_dump(empty($a)); // TRUE