- PHP 教程
- PHP - 教程
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 功能
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - echo 语句和 print 语句
- PHP - var_dump() 函数
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP – 数据类型
- PHP - 类型转换
- PHP - 类型戏法
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件和I/O
- PHP – 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符类型
- PHP - 算术运算符示例
- PHP - 比较运算符示例
- PHP - 逻辑运算符示例
- PHP - 赋值运算符示例
- PHP – 字符串运算符
- PHP – 数组运算符
- PHP – 条件运算符示例
- PHP - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
- PHP – 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP – 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - do...While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 数组
PHP - Null 合并运算符
Null 合并运算符是 PHP 7 中引入的众多新功能之一。“合并” 这个词的意思是将许多事物合二为一。此运算符用于替换与 isset() 函数的三元运算。
PHP 三元运算符
PHP 有一个由“?”符号表示的三元运算符。三元运算符比较布尔表达式,如果第一个操作数为 true,则执行第一个操作数,否则执行第二个操作数。
expr ? statement1 : statement2;
例
让我们在 isset() 函数的帮助下使用三元运算符来检查是否设置了某个变量,如果声明了,则返回 true,否则返回 false。
<?php
$x = 1;
$var = isset($x) ? $x : "not set";
echo "The value of x is $var";
?>
它将产生以下输出 -
现在,让我们删除 “x” 的声明并重新运行代码 -
<?php
# $x = 1;
$var = isset($x) ? $x : "not set";
echo "The value of x is $var";
?>
该代码现在将生成以下输出 -
Null 合并运算符
Null 合并运算符由 “??” 符号表示。它是将三元与 isset() 结合使用的便捷快捷方式。如果它存在且不为 null,则返回其第一个操作数;否则,它将返回其第二个操作数。
$Var = $operand1 ?? $operand2;
第一个操作数检查某个变量是否为 null(或是否设置)。如果不为 null,则返回第一个操作数,否则返回第二个操作数。
例请看下面的例子 -
<?php
# $num = 10;
$val = $num ?? 0;
echo "The number is $val";
?>
它将产生以下输出 -
现在取消注释将 $num 设置为 10 的第一个语句并重新运行代码 -
<?php
$num = 10;
$val = $num ?? 0;
echo "The number is $val";
?>
现在,它将生成以下输出 -
Null 合并运算符的一个有用应用是检查客户端浏览器是否提供了用户名。
例以下代码从 URL 中读取 name 变量。如果 URL 中确实有 name 参数的值,则会显示他的欢迎消息。但是,如果不是,则用户称为 Guest。
<?php
$username = $_GET['name'] ?? 'Guest';
echo "Welcome $username";
?>
假设这个脚本 “hello.php” 在 PHP 服务器的 htdocs 文件夹中,在 URL 中输入 http://localhost/hello.php?name=Amar,浏览器会显示如下消息 -
如果 http://localhost/hello.php 是 URL,则浏览器将显示以下消息 -
Null 合并运算符用于替代三元运算符检查 isset() 函数的特定情况。因此,以下语句给出了类似的结果 -
<?php
$username = isset($_GET['name']) ? $_GET['name'] : 'Guest';
echo "Welcome $username";
?>
现在,它将生成以下输出 -
您可以链接 “??” 运算符,如下所示 -
<?php
$username = $_GET['name'] ?? $_POST['name'] ?? 'Guest';
echo "Welcome $username";
?>
现在,它将生成以下输出 -
如果变量 $name 未通过 GET 或 POST 方法设置,这会将用户名设置为 Guest。