📅  最后修改于: 2023-12-03 15:29:14.061000             🧑  作者: Mango
?:
是 PHP 5.3 中引入的三元运算符,相当于 if...else
的简化语法。它的结构为:
$expr1 ?: $expr2
如果 $expr1
的值为真(true
),则返回 $expr1
的值,否则返回 $expr2
的值。
与普通的三元运算符不同的是,?:
左边的条件表达式只会被求值一次。在实际应用中,?:
的使用可以提高代码的简洁性和可读性。
下面是一些具体的示例:
// 如果 $name 不为空,则输出 $name,否则输出 "guest"
echo $name ?: 'guest';
// 如果 $a 大于 $b,则取 $a 的值,否则取 $b 的值
$max = $a > $b ? $a : $b;
$max = $a ?: $b;
// 如果 $arr['key'] 不存在,则给它赋一个默认值
$value = $arr['key'] ?: 'default';
在使用 ?:
运算符时,需要注意以下几点:
?:
左边的代码不要有副作用(不要修改变量 or 不要影响程序的其它部分)。?:
的首元素必须是可以转换为布尔值的表达式,否则会出现语法错误。!==
或 ===
),以避免类型不匹配的问题。?:
运算符是一种很有用的语法糖。在写代码的时候,它们可以大大提高代码的简洁度和可读性。在使用过程中需要注意语法问题。