当前位置: 首页 > 知识库问答 >
问题:

之间有什么区别?:然后呢??PHP操作者?[重复]

燕禄
2023-03-14

我对这两个运算符都有基本的了解,但想知道两者之间可能导致“难以跟踪”错误的细微差异是什么。

共有1个答案

赵昊阳
2023-03-14

<代码>?:只是三元运算符< code >表达式的一个快捷方式?if true : if false,而零合并运算符< code >??仅具有该构造,并测试变量是否设置/定义为< code>null。

$a = '';
echo $a ?: 'test ?:';
echo $a ?? 'test ??';

产量测试 ?:因为 $a 是一个空字符串,计算结果为 false,但它已设置。

//$a = null;
echo $a ?: 'test ?:';
echo $a ?? 'test ??';

产量:

警告:未定义变量$a test?:测验

在第一行中,因为未设置$a,这会生成通知/警告并计算为 false,而在第二行中,因为未设置。

简而言之:

    < li> ?:将表达式计算为< code>true或< code>false并在< code>false时执行。 < li> ??如果表达式不是< code>null则执行
 类似资料:
  • 我正在浏览微软的Rust教程,它是关于 实现函数,以便返回对插入向量中的值的引用 这里给出了解决方案,但它与我的不同之处在于它使用了 除了返回类型之外,我的和标准解决方案之间的另一个区别是,我只是简单地返回了参数,而标准解决方案使用复杂方式)。 我想知道我的解决方案是否有任何问题,本教程采取了另一种方式? 虽然@Masklin为我的问题提供了一个很好的答案,但它有点特定于我给出的示例,但没有直接解

  • 我对科特林是新来的。我想知道下面代码中这两个和之间的区别。 下面有两个片段:第一个片段使用表示,另一个片段使用表示相同的变量。

  • 问题内容: 我无法理解以下文本…这是否意味着空的构造函数?为什么拥有两个不同的版本很重要? https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html 在Java虚拟机级别,每个构造函数(第2.12节)都作为具有特殊名称的实例初始化方法出现。该名称由编译器提供。因为该名称不是有效的标识符,所以不能直接用Java编程语言编写的程序中使

  • 本文向大家介绍内核和操作系统之间有什么区别?,包括了内核和操作系统之间有什么区别?的使用技巧和注意事项,需要的朋友参考一下 操作系统 操作系统(OS)是管理计算机硬件资源并充当用户与计算机硬件之间的接口的软件集合。它为计算机程序提供通用服务。操作系统是计算机系统中系统软件的重要组成部分。 核心 内核是操作系统的核心部分,并负责该操作系统的所有主要活动。内核由各种模块组成,它直接与底层硬件交互。它还

  • 问题内容: 我试图破译以下功能: 我从http://blog.danlew.net/2014/09/15/grokking-rxjava- part-1/ 获得了一个很好的rxjava简介,但是它只是顺便提到了Observer,说您将在大多数情况下使用Subscriber从Observable发射到消费项目的时间。 有人可以向我解释 什么是观察者? 观察者与订户有何不同? 上面的代码段是做什么的?

  • 问题内容: 有人可以告诉我中间操作和终端操作有什么区别吗? 操作组合到管道中以处理流。所有操作都是中间操作或终端..means?。 问题答案: Stream支持几种操作,这些操作分为和操作。 此操作之间的区别在于,中间操作是惰性的,而终端操作不是。当您在流上调用中间操作时,该操作不会立即执行。仅在对该流调用终端操作时才执行该命令。在某种程度上,一旦调用了终端操作,便会存储并调用一次中间操作。您可以