这种结构意味着什么:
$var = isset($var_1) ? $var_1 : $var_2;
我遇到了它,当然还有其他值,而不是$ va,$ var_1和$ var_2。
感谢。
答案 0 :(得分:3)
这是三元运算符,意思与:
相同if (isset($var_1)) {
$var = $var_1;
}
else {
$var = $var_2;
}
三元运算符提供了一种创建简单if / else语句的简便方法。
答案 1 :(得分:1)
它有一些语法错误,正确:
$var = isset($var_1) ? $var_1 : $var_2;
这意味着:
if (isset($var_1))
{
$var = $var_1;
}
else
{
$var = $var_2;
}
答案 2 :(得分:1)
这意味着:
if(isset($var_1))
$var = $var_1;
else
$var = $var_2;
这是一种简短的语法。
答案 3 :(得分:0)
只是为了您的信息从PHP手册我复制贴好的事情了解三元比较运算符
表达式(expr1)? (expr2):如果expr1的计算结果为TRUE,则(expr3)求值为expr2;如果expr1求值为FALSE,则求expr3。
从PHP 5.3开始,可以省略三元运算符的中间部分。表达式expr1?:expr3如果expr1的计算结果为TRUE则返回expr1,否则返回expr3。
注意:请注意,三元运算符是一个语句,它不会计算变量,而是计算结果。知道是否要通过引用返回变量很重要。声明返回$ var == 42? $ a:$ b;因此,在返回引用函数中将不起作用,并且在以后的PHP版本中发出警告。
注意:
建议您避免“堆叠”三元表达式。 PHP在单个语句中使用多个三元运算符时的行为是不明显的:
示例#3非明显的三元行为
<?php
// on first glance, the following appears to output 'true'
echo (true?'true':false?'t':'f');
// however, the actual output of the above is 't'
// this is because ternary expressions are evaluated from left to right
// the following is a more obvious version of the same code as above
echo ((true ? 'true' : false) ? 't' : 'f');
// here, you can see that the first expression is evaluated to 'true', which
// in turn evaluates to (bool)true, thus returning the true branch of the
// second ternary expression.
?>