📜  ?: php (1)

📅  最后修改于: 2023-12-03 15:29:14.061000             🧑  作者: Mango

?: PHP

简介

?: 是 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';
注意事项

在使用 ?: 运算符时,需要注意以下几点:

  1. ?: 左边的代码不要有副作用(不要修改变量 or 不要影响程序的其它部分)。
  2. ?: 的首元素必须是可以转换为布尔值的表达式,否则会出现语法错误。
  3. 判断条件中应该尽量使用严格比较符(!=====),以避免类型不匹配的问题。
结论

?: 运算符是一种很有用的语法糖。在写代码的时候,它们可以大大提高代码的简洁度和可读性。在使用过程中需要注意语法问题。