推荐答案
在 PHP 中,??
和 ?:
是两个不同的运算符,分别用于处理不同的场景。
??
是空合并运算符,用于检查变量是否为null
,如果是null
,则返回指定的默认值。?:
是三元运算符的简写形式,用于根据条件返回两个表达式中的一个。
本题详细解读
??
空合并运算符
??
运算符用于检查一个变量是否为 null
。如果变量为 null
,则返回指定的默认值;否则返回变量的值。
语法:
$result = $variable ?? $defaultValue;
示例:
$username = $_GET['username'] ?? 'Guest';
在这个例子中,如果 $_GET['username']
存在且不为 null
,则 $username
将被赋值为 $_GET['username']
的值;否则,$username
将被赋值为 'Guest'
。
?:
三元运算符
?:
是三元运算符的简写形式,用于根据条件返回两个表达式中的一个。
语法:
$result = $condition ? $expression1 : $expression2;
示例:
$status = $isLoggedIn ? 'Logged In' : 'Logged Out';
在这个例子中,如果 $isLoggedIn
为 true
,则 $status
将被赋值为 'Logged In'
;否则,$status
将被赋值为 'Logged Out'
。
区别
??
主要用于处理null
值,而?:
用于处理布尔条件。??
是 PHP 7 引入的新特性,而?:
在早期版本的 PHP 中就已经存在。
使用场景
- 使用
??
当你需要检查一个变量是否为null
并提供默认值时。 - 使用
?:
当你需要根据布尔条件选择两个不同的值时。