您的当前位置:首页>全部文章>文章详情

【PHP】php中?:与??运算符有什么不同?

CrazyPanda发表于:2024-08-01 09:41:32浏览:272次TAG:

在PHP 7中,有两个类似的语法结构:“??”和“?:”,它们都是用于处理条件判断和返回值的运算符。尽管它们看起来相似,但它们的作用和用法有一些区别。

"?:"是三目运算符,语法格式为:$result = $test ? $test : ′ ′ ; 意思就是当test存在时(即empty($test)为false),则返回它本身,否则返回空(当然也可以返回其他,这里的空只是举个例子)。

"??"是php7新引入的语法,它相当于是isset($result[‘key’]) ? $result[‘key’] : ‘’;意思是若这个key的变量存在且值不为NULL,否则返回空。


举例说明

$a='';$b=0;$c='0';$d=array();$e=null;
var_dump($a?:1); // 1
var_dump($a??1); // ''
var_dump($b?:1); // 1
var_dump($b??1); // 0
var_dump($c?:1); // 1
var_dump($c??1); // "0"
var_dump($d?:1); // 1
var_dump($d??1); // array()
var_dump($e?:1); // 1
var_dump($e??1); // 1

可以看出

$a的值为:0,'',array(),'0'时,$a ?: 1得到的结果都是1;$a ?? 1得到的结果都是$a,效果相当于!empty($a) ? $a : 1;

$a的值为:null时,$a ?: 1与$a ?? 1得到的结果都是1,相当于 isset($a) ? $a : 1

需要注意的是,“??”运算符只能用于判断是否为 null,而“?:”运算符可以用于任何条件的判断。

猜你喜欢

【PHP】Your requirements could not be resolved to an installable set of packages.
在执行composer install或composer update的时候,出现Your requirements could not be resolved to an installable set of packages.这个错误,提示的是版本不兼容的问题执行一下命令即可composer install --ignore-platform-reqs 或 composer update --ignore-platform-reqs
发表于:2024-08-09 浏览:312 TAG:
【PHP】php怎么使用正则匹配去掉html
php使用正则匹配去掉html方法:1、创建一个php示例文件;2、定义一个HTML标签的字符串“$html_string”;3、使用正则表达式“/1dad84ea0069e7538b7dfc1ec7547c1e/”匹配所有html标签;4、使用“preg_replace("/1dad84ea0069e7538b7dfc1ec7547c1e/",$html_string)”语法删除html标签即可。本教程操作系统:Windows10系统、php8.1.3版本、Del
发表于:2023-12-19 浏览:325 TAG:
【PHP】PHP中的堆和栈的概念及其应用
hp作为一门非常流行的编程语言,其对于数据结构的处理和使用具有非常重要的作用。而在php中,堆和栈是两种非常重要的数据结构,它们在程序设计和实现中有着重要的应用价值。本文将从概念和应用两方面介绍php中的堆和栈。一、堆和栈的概念堆堆是一种数据结构,它是一种特殊的树形结构。在PHP中,堆是由节点和边组成的一种图形式的数据结构。堆中每个节点都有一个值,并且每个节点的值都满足一定的关系,即父节点的值大于等于子节点的值(大根堆)或父节点的值小于等于子节点的值(小根堆)。在PHP中,堆通常是用来进行高效
发表于:2024-07-29 浏览:277 TAG:
【PHP】PHP面试题
100 个常见的 PHP 面试题1) PHP是什么?PHP是一种基于脚本的web语言,开发者可以动态的创建网页。2) PHP的全称?Hypertext Preprocessor(超文本预处理器)。3) PHP与哪些编程语言相似?PHP语法类似于Perl和C。5) 实际使用的PHP是哪个版本?推荐使用版本7。6) 如何从命令行执行PHP脚本?在命令行界面(CLI),指定要执行的脚本的文件名,如下所示:1php script.php7) 如何从命令行界面运行交互式PHP Shell?将PH
发表于:2024-05-22 浏览:281 TAG:
【PHP】ChatGPT PHP在网站开发中的应用与实践
ChatGPT PHP在网站开发中的应用与实践引言:随着人工智能技术的不断发展,Chatbot成为了众多网站开发者关注的一个热门话题。Chatbot可以与用户进行即时的对话,极大地提升了用户体验,并且在客服、营销、信息交互等方面发挥着重要作用。ChatGPT是一个基于开放AI GPT-3模型的Chatbot工具包,它可以帮助PHP开发者快速构建智能对话系统。本文将介绍ChatGPT PHP在网站开发中的应用与实践,并提供详细的代码示例。一、ChatGPT PHP简介ChatGPT PH
发表于:2023-12-25 浏览:327 TAG:
【PHP】PHP静态化
随着互联网的快速发展,网站访问量越来越大,同时网站的性能也成为了设计者们需要考虑的重要问题之一。对于使用php语言的开发人员来说,静态化是提高网站性能的一种有效方法。在本文中,我们将探讨php中静态化的方法。一、什么是静态化静态化是指将动态生成的网页文件(如PHP文件)转换为静态的HTML文件存储在服务器上。当用户请求时,直接访问静态HTML文件,避免了每次请求都要执行PHP代码的情况,从而提高了网站的性能响应速度。二、静态化的优劣静态化虽然能够提高网站响应速度,但它也存在一些缺陷:优点:1.减
发表于:2024-06-18 浏览:262 TAG:
【PHP】PHP判断PC、手机浏览器、微信浏览器、支付宝浏览器
PHP识别不同的请求,主要从请求头user_agent来区分比如PC端谷歌浏览器Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit.........Safari/537.36手机微信浏览器Mozilla/5.0 ............. MicroMessenger/8.0.42.2460(0x28002A51) WeChat/arm64 
发表于:2024-04-11 浏览:281 TAG:
【PHP】php分布式架构有哪些技术
hp分布式架构的相关技术。分布式架构的概念和优势,然后从六个方面进行了详细的阐述,包括负载均衡、分布式缓存、分布式数据库、消息队列、分布式文件系统和容器化技术。最后对php分布式架构的技术进行了总结归纳。一、负载均衡在分布式架构中,负载均衡是非常重要的技术。它通过将请求分发到多个服务器上,实现了请求的平均分配,提高了系统的并发处理能力和可用性。负载均衡有多种实现方式,包括软件负载均衡、硬件负载均衡和DNS负载均衡等。二、分布式缓存分布式缓存是将数据缓存在多个服务器上,提高了系统的读取速度和性
发表于:2024-05-29 浏览:298 TAG:
【PHP】php amr格式转化mp3
在音频文件处理中,有时候我们需要将AMR格式的音频文件转换成MP3格式。本文将介绍如何使用PHP语言来完成AMR格式转化MP3。一、AMR格式简介AMR全称 Adaptive Multi-Rate,是一种压缩音频格式。由于AMR格式文件体积小,网络传输速度快,因此被广泛应用于手机铃声、语音留言、移动通讯等领域。二、MP3格式简介MP3全称 MPEG Audio Layer-3,是一种常用的音频格式。由于MP3格式具有音质高、可压缩、体积小等特点,因此被广泛应用于音乐播放器、电影播放器等
发表于:2023-12-20 浏览:269 TAG:
【PHP】php常见的集群有哪些
php常见的集群有LAMP集群、Nginx集群、Memcached集群、Redis集群和Hadoop集群。详细介绍:1、LAMP集群,LAMP是指Linux、Apache、MySQL和PHP的组合,是一种常见的PHP开发环境,在LAMP集群中,多个服务器运行相同的应用程序,并通过负载均衡器将请求分发到不同的服务器上;2、Nginx集群,Nginx是一种高性能的Web服务器等等。本教程操作系统:windows10系统、PHP 8.1.3版本、DELL G3电脑。PHP是一种广泛使用的服务
发表于:2023-12-06 浏览:355 TAG: