PHP两个三元运算符“??” 和“?:”的用法和区别

这篇具有很好参考价值的文章主要介绍了PHP两个三元运算符“??” 和“?:”的用法和区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

  • "?:"是三目运算符,语法格式为:$result = $test ? t e s t : ′ ′ ; 意思就是当 test:'';意思就是当 test:′′;意思就是当test存在时(即empty($test)为false),则返回它本身,否则返回空(当然也可以返回其他,这里的空只是举个例子)
  • "??"是php7新引入的语法,它相当于是isset($result[‘key’]) ?
    $result[‘key’]:‘’;意思是若这个key的变量存在且值不为NULL,否则返回空。

在实际的使用中,需要区分!不然很容易出现问题!

  1. “??”运算符(Null Coalescing Operator):
    “??”运算符是PHP 7中引入的一个新特性,被称为空合并运算符。它的语法形式为 expr1 ?? expr2。它的作用是如果 expr1 不为 null,则返回 expr1 的值,否则返回 expr2 的值。这个运算符主要用于简化对变量是否为空的判断,并提供一个默认值。

例如:

$result = $value1 ?? $value2;

在这个例子中,如果 $value1 不为 null,则 $result 将被赋值为 $value1,否则将被赋值为 $value2
2. “?:”运算符(Ternary Conditional Operator):
“?:”运算符是PHP中的三元条件运算符,也被称为三元运算符。它的语法形式为 expr1 ? expr2 : expr3。它的作用是根据 expr1 的真假来返回不同的值。如果 expr1 为真(非零),则返回 expr2 的值,否则返回 expr3 的值。

例如:

$result = $condition ? $value1 : $value2;

在这个例子中,如果 $condition 为真,$result 将被赋值为 $value1,否则将被赋值为 $value2

1.[??] NULL 合并操作符
$aaa ?? $bbbisset($aaa) ? $aaa : $bbb;

注:isset() 即已设置并且不为NULL


2.[?:] 三元运算符的简写形式
$aaa ?: $bbb$aaa ? $aaa : $bbb;

注意:当$aaa未被声明时,[??]不会报错(因为用了isset)[?:]会报一个Notice

总结:

  • “??”运算符用于判断一个变量是否为 null,如果不是 null,则返回该变量的值,否则返回指定的默认值。
  • “?:”运算符用于根据条件的真假返回不同的值,类似于一个简化的if-else语句。

需要注意的是,“??”运算符只能用于判断是否为 null,而“?:”运算符可以用于任何条件的判断。文章来源地址https://www.toymoban.com/news/detail-840820.html

到了这里,关于PHP两个三元运算符“??” 和“?:”的用法和区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PHP8的运算符-PHP8知识详解

    运算符是可以通过给出的一或多个值(用编程行话来说,表达式)来产生另一个值(因而整个结构成为一个表达式)的东西。 PHP8的运算符有很多,按类型分有一元运算符、二元运算符、三元运算符。 一元运算符只对一个表达式执行操作,只能接受一个值,例如 !(逻辑取反

    2024年02月14日
    浏览(39)
  • 彻底搞懂 PHP 运算符 ?: 和 ??

    ?: 称之为短三元运算符,它是我们熟悉的三元运算符(也叫做条件运算符)的一种特殊写法,也就是省略了三元运算符中间的部分。 复习一下三元表达式的语法: (expr1) ? (expr2) : (expr3) 在 expr1 求值为 true 时的值为 expr2,在 expr1 求值为 false 时的值为 expr3。 省略三元运算符中间

    2024年02月11日
    浏览(29)
  • php基础学习之运算符(重点在连接符和错误抑制符)

    在各种编程语言中,常用的运算符号有这三大类: 算术运算 符:+,-,*,/,% 位运算 符:,|,^,, 赋值运算 符:=,+=,-=,*=,/=,%= 比较运算 符:,,==,=,=,!= 逻辑运算 符:,||,! 条件运算 符:条件?成立执行:否则执行        //又称三目运算符 自操作运算 符:

    2024年02月19日
    浏览(32)
  • JavaScript中一元运算符、三元运算符、循环

    前置自增: 后置自增: 区别 1.单独使用前置和后置没有区别。 2.前置自增:先自加再使用(记忆口诀:++在前,先加) 1.while循环 2.for循环 3.while循环和for循环区别 4.for循环嵌套 1.while循环 2.for循环 1.for循环执行代码 *作用:重复执行代码 *好处:把声明起始值、循环条件、变

    2024年02月04日
    浏览(35)
  • Lua中逻辑运算符and,or,not 区别与用法

    在Lua中,逻辑运算符包括 and 、 or 和 not 。它们用于对布尔值进行逻辑运算。 当同时满足两个表达式时,返回第二个表达式的值;否则,返回第一个表达式的值。如果第一个表 达式的值为 false 或 nil ,则直接返回该值;否则,返回第二个表达式的值。代码示例: and 简单记忆

    2024年02月11日
    浏览(26)
  • 三元运算符

    三元运算符 三元运算符通常在Python⾥被称为条件表达式 这些表达式基于真(true)/假(not)的条件判 断 在Python 2.4以上才有了三元操作。 下⾯是⼀个伪代码和例⼦: 伪代码: 它允许⽤简单的⼀⾏快速判断,⽽不是使⽤复杂的多⾏ if 语句。 这在⼤多数时候⾮常有 ⽤,⽽且可以使代

    2023年04月27日
    浏览(63)
  • JAVA的三元运算符

    例题:   在项目中创建类 Calculation 在主方法中创建 3 个整数记录男生人数、女生人数和总人数 使用逻辑运算符来判断“男生人数大于女生人数并且总人数大于 30 人”和“男生人数大于女生人数或者总人数大于 30 人”这两种情况是否存在 1.三元运算符 使用格式   条件式 ?

    2024年02月06日
    浏览(32)
  • python中的三元运算符

    在python中这样规定三元运算符的使用方法: [on true] if [expression] else [on false] 当 expression 表达式为真的时候执行 on true 代码,当表达式为假的时候执行 on false 代码    

    2024年02月12日
    浏览(33)
  • 微信小程序使用三元运算符

    针对wxml中的style的三元运算符 针对wxml中的src的三元运算符 针对wxml中的获取后台数据值的三元运算符 完整代码块 CSS样式

    2024年02月08日
    浏览(34)
  • 探索JavaScript中强大的三元运算符:简洁、灵活、提升代码效率

    三元运算是一种在编程中常见的条件表达式。它使用三个操作数进行条件判断,并返回两个值中的一个,具体取决于条件的真假。 三元运算符的优势:相比于使用传统的 if-else 语句,三元运算符可以简化代码并提高代码的可读性。它可以使条件判断和返回结果在一行内完成,

    2024年01月16日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包