📅  最后修改于: 2023-12-03 15:03:34.336000             🧑  作者: Mango
PHP ?: 操作符是 PHP 5.3 中引入的一个三元操作符,它的完整写法是:
condition ? value_if_true : value_if_false;
其中,condition
是一个要求返回布尔值的表达式,如果它的值为 true
,那么整个操作符返回 value_if_true
,否则返回 value_if_false
。
而 PHP ?: 操作符则是这个三元操作符的简写形式,它的写法是:
condition ?: value_if_false;
这里的 value_if_true
被省略了,如果 condition
的值为真,则整个操作符的值即为 condition
的值,否则返回 value_if_false
。
举个例子,这两个表达式的结果是相同的:
$foo = isset($bar) ? $bar : 'default';
$foo = $bar ?: 'default';
相比传统的三元操作符形式,PHP ?: 操作符有如下好处:
value_if_true
,减少代码量,提高可读性;举个例子:
// 传统写法
if (isset($foo)) {
$bar = $foo;
} else {
$bar = 'default';
}
// PHP ?: 写法
$bar = $foo ?: 'default';
尽管 PHP ?: 操作符简单易用,但我们在实际开发中,也需要注意一些问题:
// 正确写法
$value = $a ? $a : $b;
// 错误写法
// 语法错误,左侧需要一个变量或可赋值的表达式
$value = $a ?: $b;
PHP ?: 操作符作为 PHP 5.3 新特性之一,极大地方便了我们的开发工作。它简洁、易用,能提高代码的可读性。但我们在使用时也需要注意一些注意事项,以避免出现问题。