彻底搞懂 PHP 运算符 ?: 和 ??
文章目录
- 快速掌握
- ?: 短三元运算符
- ?? NULL 合并运算符
- 附上官方文档查阅方式
快速掌握
?: 短三元运算符
?: 称之为短三元运算符,它是我们熟悉的三元运算符(也叫做条件运算符)的一种特殊写法,也就是省略了三元运算符中间的部分。
-
复习一下三元表达式的语法:
(expr1) ? (expr2) : (expr3)
在 expr1 求值为 true 时的值为 expr2,在 expr1 求值为 false 时的值为 expr3。<?php // 三元运算符的例子 $action = (empty($_POST['action'])) ? 'default' : $_POST['action'];// 以上等同于以下的 if/else 语句 if (empty($_POST['action'])) {$action = 'default'; } else {$action = $_POST['action']; } ?> -
省略三元运算符中间部分的语法:
expr1 ?: expr3
如果 expr1 求值为 true 时返回 expr1 的结果,否则返回 expr3(expr1 在这里仅执行一次)。<?php echo 0 ?: 1 ?: 2 ?: 3, PHP_EOL; //1 echo 0 ?: 0 ?: 2 ?: 3, PHP_EOL; //2 echo 0 ?: 0 ?: 0 ?: 3, PHP_EOL; //3 ?>
?? NULL 合并运算符
?? 语法:(expr1) ?? (expr2)
当 expr1 为 null,表达式 (expr1) ?? (expr2) 等同于 expr2,否则为 expr1。
下面是设置默认值的示例:
<?php
// NULL 合并运算符的例子
$action = $_POST['action'] ?? 'default';// 以上例子等同于于以下 if/else 语句
if (isset($_POST['action'])) {$action = $_POST['action'];
} else {$action = 'default';
}
?>
-
null 合并运算符的优先级较低。
这意味着如果将它与其它运算符(比如字符串链接或者算术运算符)混合使用,可能需要括号。请看下面的示例:<?php // $name 未定义,引发警告。 print 'Mr. ' . $name ?? 'Anonymous';// 打印 "Mr. Anonymous" print 'Mr. ' . ($name ?? 'Anonymous'); ?> -
嵌套 NULL 合并运算符的示例:
<?php$foo = null; $bar = null; $baz = 1; $qux = 2;echo $foo ?? $bar ?? $baz ?? $qux; // 输出 1?>
附上官方文档查阅方式
- 在线文档链接
php.net 比较运算符,打开网页后Ctrl+F搜索 ?: 或者 ?? - 离线文档
依次打开目录节点:目录 -> PHP 手册 -> 语言参考 -> 运算符 -> 比较运算符,同样Ctrl+F搜索 ?: 或者 ??
相关文章:
彻底搞懂 PHP 运算符 ?: 和 ??
文章目录 快速掌握?: 短三元运算符?? NULL 合并运算符 附上官方文档查阅方式 快速掌握 ?: 短三元运算符 ?: 称之为短三元运算符,它是我们熟悉的三元运算符(也叫做条件运算符)的一种特殊写法,也就是省略了三元运算符中间的部…...
贝叶斯人工智能大脑与 ChatGPT
文章目录 一、前言二、主要内容 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 论文地址:https://arxiv.org/abs/2308.14732 这篇论文旨在研究 Chat Generative Pre-trained Transformer(ChatGPT)在贝叶斯…...
适应高速率网络设备的-2.5G/5G/10G网络变压器/网络滤波器介绍
Hqst盈盛(华强盛)电子导读:在高速发展的互联网/物联网时代,为满足高网速的网络数据传输需求,网络设备在制造中也要选用合适的网络变压器/滤波器产品,有哪些可供选择的高速率网络变压器产品也是广大采购人员…...
「Redis」1. 数据类型的底层实现
前言:在这篇博文中,我们将简单总结在面试中怎么回答Redis数据类型的底层实现。 因为面试时间就那么点,言简意赅的描述自己会的知识显得尤为重要‼️ 文章目录 0.1. String 的底层实现原理0.2. 列表的底层实现原理0.3. 字典的底层实现原理0.4.…...
Win11共享文件,能发现主机但无法访问,提示找不到网络路径
加密长度选择如下: 参考以下链接: Redirectinghttps://answers.microsoft.com/zh-hans/windows/forum/all/win11%E8%AE%BE%E7%BD%AE%E6%96%87%E4%BB%B6%E5%A4%B9/554343a9-d963-449a-aa59-ce1e6f7c8982?tabAllReplies#tabs...
ROS中使用Navigation报错信息
在ROS中使用遇到了几个Navigation报错信息,在这里进行下记录: [ WARN] [1688134727.429227824]: The origin for the sensor at (7.35, 13.12) is out of map bounds. So, the costmap cannot raytrace for it. 解决办法: [ WARN] [16881…...
three.js(六):自适应设备分辨率
自适应设备分辨率 当今大多数的PC端和移动端显示器都是HD-DPI显示器。HD-DPI 是High Definition-Dots Per Inch 的简称,意思是高分辨率显示器。不同设备的显示器的分辨率是不一样的。 以上图中的iPhone6/7/8 为例:375*667 代表的手机的屏幕的物理尺寸&a…...
Kubernetes对象深入学习之五:TypeMeta无效之谜
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Kubernetes对象深入学习之五》系列的第五篇,从前文的分析也能看出,代表对象类型的schema.ObjectKind,于…...
Gitlab设置中文
1. 打开设置 2.选择首选项Preferences 3. 下滑选择本地化选项Localization,设置简体中文,然后保存更改save changes。刷新网页即可。...
【微服务部署】05-安全:强制HTTPS
文章目录 安全 : 强制HTTPS的两种方式1. Ingress配置重定向2. 应用程序配置3. Ingress配置4. 应用程序配置代码总结 安全 : 强制HTTPS的两种方式 互联网发展中,安全是非常重要的,由其是现在HTTPS非常普及的情况下,应用程序在公网上一般都会被…...
Config:服务端连接Git配置
创建子模块 Pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org…...
c++学习 之 类和对象 public , protected ,private
前言 在C中,访问控制修饰符(Access Control Modifiers)用于控制类的成员(成员变量和成员函数)的访问权限。这些修饰符分为三种:public、protected和private。它们定义了成员可以在何处访问,具体…...
ECharts图表动态修改series显示隐藏
文章目录 1、前言2、思路3、实现 1、前言 最近做的大数据平台,里面很多部分用到了ECharts,其中有个功能,要求将图表分组,根据用户选择的组,来确定ECharts要显示那些线条和柱子,也就是动态的显示option.seri…...
云服务器(Centos7系统)配置JAVA+mysql+tomcat 环境
文章主要内容来源云服务器(Centos7系统)部署javaweb项目(二)配置JAVAmysqltomcat 环境_man_zuo的博客-CSDN博客 模仿途中遇到的问题 连接无效 有时连接无法下载,可能是过期了,将其更换为官网给的下载连接即…...
【计算机视觉 | 目标检测】目标检测常用数据集及其介绍(四)
文章目录 一、JTA (Joint Track Auto)二、AVD (Active Vision Dataset)三、ExDark (Exclusively Dark Image Dataset)四、InteriorNet五、ScanRefer Dataset六、FlickrLogos-32七、SIXray八、Clear Weather (DENSE)九、DVQA (Data Visualizations via Question Answering)十、M…...
Dockerfile制作镜像与搭建LAMP环境
一.编写Dockerfile制作Web应用系统nginx镜像,生成镜像nginx:v1.1,并推送其到私有仓库。具体要求如下: (1)基于centos基础镜像; (2)指定作者信息; (3ÿ…...
Linux系统中查看端口的方法
一、使用netstat命令 netstat命令是一种非常实用的命令,可以用来显示网络连接、路由表、网络接口和网络统计信息等。它还可以用来显示系统中正在监听的端口。要查看端口,只需在终端中输入以下命令: netstat -tuln 这个命令的意思是列出所有…...
java mysql传入string数组返回string数组的简单写法
一、前言 最近有个需求,需要一个传入string数组返回string数组的sql逻辑。 懒得封装成javabean了,于是就写了一个简单的样例,总结下。 二、代码 1.mapper.java,可以这样写: public interface MyMapper {String[] …...
【PHP】PHP基本语法
1、PHP标记 当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?php 和 ?>,告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP…...
SystemVerilog interface详细介绍
1. Interface概念 System Verilog中引入了接口定义,接口与module 等价的定义,是要在其他的接口、module中直接定义,不能写在块语句中,跟class是不同的。接口是将一组线捆绑起来,可以将接口传递给module。 2. 接口的优…...
应届生编程面试,这8个加分项,让你在面试官面前脱颖而出
文章目录前言一、基础扎实:别死背八股,要懂“为什么”1. 经典技术永不过时,别盲目追新2. 把“是什么”变成“为什么”,才是真的懂二、项目经历:不说技术栈,说“解决了什么问题”1. 用数据说话,量…...
3步高效解决方案:Calibre电子书元数据自动化管理
3步高效解决方案:Calibre电子书元数据自动化管理 【免费下载链接】calibre-douban Calibre new douban metadata source plugin. Douban no longer provides book APIs to the public, so it can only use web crawling to obtain data. This is a calibre Douban p…...
抖音无水印批量下载终极指南:3分钟学会免费下载视频、音乐和直播
抖音无水印批量下载终极指南:3分钟学会免费下载视频、音乐和直播 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...
遥感在生态系统碳储量、碳收支、碳循环、碳汇稳定性预警以及人为源排放反演等应用
卫星遥感具有客观、连续、稳定、大范围、重复观测的优点,已成为监测全球碳盘查的核心技术手段,卫星遥感也正在成为新一代、国际认可的全球碳核查业务化方法。本此目的就是梳理碳中和及碳盘点对卫星遥感的最新现实需求,系统总结遥感技术在生态…...
The Incredible PyTorch终极指南:探索全球开发者贡献者墙的完整资源宝库
The Incredible PyTorch终极指南:探索全球开发者贡献者墙的完整资源宝库 【免费下载链接】the-incredible-pytorch The Incredible PyTorch: a curated list of tutorials, papers, projects, communities and more relating to PyTorch. 项目地址: https://gitc…...
Windows安卓应用安装新方案:告别模拟器,APK安装器如何实现原生级体验?
Windows安卓应用安装新方案:告别模拟器,APK安装器如何实现原生级体验? 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想在…...
Pytorch图像去噪实战(八十五):审计日志实战,记录用户行为、模型调用和敏感操作
Pytorch图像去噪实战(八十五):审计日志实战,记录用户行为、模型调用和敏感操作 一、问题场景:出了问题,却不知道是谁在什么时候做了什么 图像去噪服务进入平台化后,会出现大量用户行为: 用户上传图片 用户创建异步任务 用户下载结果 用户调用高质量模型 管理员修改套餐…...
在 Taotoken 模型广场中根据任务需求与预算进行模型选型的实践
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Taotoken 模型广场中根据任务需求与预算进行模型选型的实践 对于开发者而言,面对众多大模型 API,如何选…...
sklearn交叉验证提速秘籍:除了n_jobs=-1,cross_val_score里pre_dispatch和verbose怎么用?
sklearn交叉验证提速实战:参数调优与资源管理技巧 当数据集规模膨胀或模型复杂度攀升时,交叉验证可能从几分钟的等待变成数小时的煎熬。许多工程师习惯性设置n_jobs-1后便放任不管,直到内存溢出或日志淹没控制台才手忙脚乱。本文将揭示cross_…...
Qt Creator远程调试实战:当你的开发机是Win10,测试机是Win7时该怎么办?
Qt Creator跨Windows版本远程调试实战:Win10到Win7的完整解决方案 当开发环境与测试环境存在Windows版本差异时,Qt项目的远程调试往往会遇到各种"玄学"问题。本文将针对Win10开发机与Win7测试机的典型组合,深入解析CDB远程调试的完…...
