PHP 中的双问号

简介: PHP 中的双问号

双问号在 PHP 中称为 Null Coalescing 运算符。它是在 PHP7 中引入的。

双问号返回操作数的值,即 not Null

它从左到右检查操作数并返回第一个 non-Null 值。

如果需要结合使用三元,可以使用 Null Coalescing 运算符;在 PHP7 之前,我们使用 PHP 内置函数 isset()?: 而不是 ??

[在 PHP 中使用双问号作为 Null Coalescing 运算符]

<?php
$Temp = null;
$Demo = $Temp ?? 'Nothing';
echo $Demo."<br>";
$Temp = "Test Double Question Mark";
$Demo = $Temp ?? 'something';
echo $Demo;
?>

上面的代码将首先打印 nothing,因为 $Demo 的值为空,然后它打印字符串 Test Double Question Mark,因为第一个操作数是 not null

输出:

Nothing
Test Double Question Mark

[在 PHP 中的表单值上使用双问号

我们可以在表单值上使用 Null Coalescing 运算符,因此如果没有插入任何值,它可以打印其他内容。参见示例:

<!DOCTYPE HTML>
<html>
<body>
<form action="test.php" method="post">
Test Value 1: <input type="text" name="test1"><br>
Test Value 2: <input type="text" name="test2"><br>
<input type="submit">
</form>
</body>
</html>

此 HTML 代码将要求你输入值,这些值将打印在下面给出的 test.php 上。

<?php
echo $_POST["test1"] ?? $_POST["test2"] ?? "Please enter a test value"; 
?>

该代码将打印它从表单中获取的第一个非 Null 值,如果它没有得到任何值,它将打印输出:

Please enter a test value
相关文章
|
JSON PHP 开发工具
PHP Monolog 日志的使用
PHP Monolog 日志的使用
1405 0
|
JavaScript 前端开发 搜索推荐
不想要网页默认的右键菜单栏,怎么封装一个可以自定义的右键菜单组件?
不想要网页默认的右键菜单栏,怎么封装一个可以自定义的右键菜单组件?
358 0
|
小程序 前端开发 JavaScript
微信小程序(二十一)小程序登录获取openid和unionid
在微信小程序中,因为各种各样的原因我们会需要获取到用户的openid或者unionid下面就简单来讲一下在小程序中如何获取openid和unionid。 步骤一:微信登录获取登录凭证
3426 0
|
人工智能 自动驾驶 vr&ar
探索GPU算力平台的创新应用:从游戏到自动驾驶的跨越
【8月更文第5天】本文探讨了GPU(图形处理器)在现代计算中的角色转变,从最初的图形渲染到如今成为人工智能和高性能计算的重要组成部分。我们将通过几个具体的案例研究,包括游戏渲染、虚拟现实(VR)以及自动驾驶系统,来展示GPU是如何推动这些领域的进步和发展。
367 1
|
Java 数据库连接 Spring
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could
这个错误通常出现在使用Spring Boot进行数据库连接时。错误信息表明Spring Boot未能配置一个DataSource,因为没有指定'url'属性,并且没有发现默认的数据库连接。
6151 0
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
1209 1
|
SQL 关系型数据库 MySQL
MySQL中一定要遵守的12个SQL规范
本文档提供了12条SQL编写和数据库管理的最佳实践建议,旨在帮助开发者提高SQL查询效率、增强数据库安全性及可维护性。
529 1
|
资源调度 Kubernetes 调度
从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革
从 Linux Crontab 到 K8s CronJob,定时任务正在经历怎样的变革
119428 59
|
关系型数据库 MySQL Unix
MySQL 计算时间差分钟
【5月更文挑战第3天】
1418 2
|
设计模式 C++
C++设计模式:面试题精选集
C++设计模式:面试题精选集
581 0