可能重复:
What are the PHP operators "?" and ":" called and what do they do?
Reference - What does this symbol mean in PHP?
我知道PHP中isset
的含义。但是我看到了像isset($x) ? $y : $z
这样的语法。这是什么意思?
答案 0 :(得分:8)
这是Ternary Operator,也称为“条件表达式算子”(感谢Oli Charlesworth)。您的代码如下:
if $x is set, use $y, if not use $z
答案 1 :(得分:2)
在PHP和许多其他语言中,您可以根据1行语句中的条件分配值。
$variable = expression ? "the expression was true" : "the expression was false".
这相当于
if(expression){
$variable="the expression is true";
}else{
$variable="the expression is false";
}
你也可以嵌套这些
$x = (expression1) ?
(expression2) ? "expression 1 and expression 2 are true" : "expression 1 is true but expression 2 is not" :
(expression2) ? "expression 2 is true, but expression 1 is not" : "both expression 1 and expression 2 are false.";
答案 2 :(得分:2)
该声明不会像书面那样做任何事情。
另一方面像
$w = isset($x) ? $y : $z;
更有意义。如果$ x满足isset(),则$ w被赋予$ y的值。否则,$ w被赋予$ z的值。
答案 3 :(得分:0)
这意味着如果未设置$x
变量,则$y
的值会分配给$x
,否则$z
的值会分配给$x
。
答案 4 :(得分:0)
如果/ else阻止,它是单个表达式的简写。
$v = isset($x) ? $y : $z;
// equivalent to
if (isset($x)) {
$v = $y;
} else {
$v = $z;
}