可能重复:
PHP运算符"?"answers":"被调用了什么?它们做什么
参考-这个符号在PHP中是什么意思?
我知道isset
在PHP中的含义。但我见过类似isset($x) ? $y : $z
的语法。这是什么意思?
这是一个三元运算符,也称为"条件表达式运算符"(感谢Oli Charlesworth(。你的代码读起来像:
if $x is set, use $y, if not use $z
在PHP和许多其他语言中,您可以在一行语句中根据条件分配值。
$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.";
该语句不会像编写的那样执行任何操作。
另一方面,类似的东西
$w = isset($x) ? $y : $z;
更有意义。如果$x满足isset((,则为$w分配$y的值。否则,$w被指定为$z的值。
它是单个表达式if/else块的简写。
$v = isset($x) ? $y : $z;
// equivalent to
if (isset($x)) {
$v = $y;
} else {
$v = $z;
}
这意味着如果未设置$x
变量,则$y
的值被分配给$x
,否则$z
的值被指定给$x
。