三元运算符和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