三元运算符和Null合并运算符在php中的区别
三元运算符
三元运算符用于将if语句替换为一个语句。
语法
(condition) ? expression1 : expression2;
等价表达
if(condition) {
return expression1;
}
else {
return expression2;
}如果condition为true,则返回expression1的结果,否则返回expression2的结果。条件或表达式中不允许void。
空合并运算符
如果变量为null,则使用null合并运算符提供不为null的值。
语法
(variable) ?? expression;
等价表达
if(isset(variable)) {
return variable;
}
else {
return expression;
}如果变量为null,则返回表达式的结果。
示例
<!DOCTYPE html>
<html>
<head>
<title>PHP Example</title>
</head>
<body>
<?php
//获取$_GET['user']的值并返回“未传递”
//如果没有通过用户名
$username = $_GET['username'] ?? 'not passed';
print($username);
print("<br/>");
//使用三元运算符的等效代码
$username = isset($_GET['username']) ? $_GET['username'] : 'not passed';
print($username);
print("<br/>");
?>
</body>
</html>输出结果
not passed not passed