首页 > 编程语言 >PHP三元运算符 ?? 和 ?:

PHP三元运算符 ?? 和 ?:

时间:2022-11-13 21:59:38浏览次数:36  
标签:null false 运算符 报错 三元 PHP true

 

 

$c = $a ?: $b;   等效于  $c = $a ? $a : $b;
$c = $a ?? $b;   等效于  $c = isset($a) ? $a : $b;
 
 
示例:
$a = null;
$b = 'b';
$c = $a ?: $b;      // b
$c = $a ?? $b;      // b
 
$a = '';
$b = 'b';
$c = $a ?: $b;      // b
$c = $a ?? $b;      // ''
 
$a = false;
$b = 'b';
$c = $a ?: $b;      // b
$c = $a ?? $b;      // false
 
$a = true;
$b = 'b';
$c = $a ?: $b;      // true
$c = $a ?? $b;      // true
 
$a = 0;
$b = 'b';
$c = $a ?: $b;      // b
$c = $a ?? $b;      // 0
 
$a = [];
$b = 'b';
$c = $a ?: $b;      // b
$c = $a ?? $b;      // []
 
在处理null时,??会被认为是false,其余空字符串,空数值,空数组等都会被认为是true。
?:在处理空值时会被认为是false,但是如果变量不存在会报错,??不报错。

 

标签:null,false,运算符,报错,三元,PHP,true
From: https://www.cnblogs.com/woods1815/p/16887076.html

相关文章

  • PHP是最好的编程语言吗?
    编程语言很多,既然存在,就有每个存在的理由。不想评论,也没必要评论,哪个语言好,哪个语言不好,因为,其实,每个编程语言本身都不难,只要学会了一种语言,其他的都是相通的。难的,好......
  • PHP 7.3 比 PHP 7.0 快 22%,即将进入特性冻结阶段
    随着上周PHP7.3Alpha3的发布,意味着PHP7.3即将进入特性冻结阶段,不再有新的功能添加,后续的Beta和RC版本将主要进行修复,直到11月29日发布正式版本。从目前的......
  • python赋值运算符
    =  等于运算符+= 加法运算符-= 减法运算符*= 乘法运算法/= 除法运算法%=取模运算法如果可以被整除,返回0如果不能被整除,返回余数**=幂运算法f=10......
  • instanceof 运算符
    instanceof是二元运算符,左边是对象,右边是类;当对象是右面类或子类所创建对象时,返回true;否则,返回false。【示例】使用instanceof运算符进行类型判断publicclassTe......
  • PHP 网页
    PHP官网下载 https://windows.php.net/download/在PHP官网点击Download下载时不管选择哪个版本的都有两个类型:NonThreadSafe(非线程安全)和  ThreadSafe(线程安全)......
  • Day3-3 逻辑运算符,位运算符,三元运算符
    逻辑运算符,位运算符,三元运算符packageoperator;​//逻辑运算符publicclassDemo05{publicstaticvoidmain(String[]args){//与&&。或||,......
  • Day3-1 基本运算符
    运算符算术运算符:+,-,*,/,%(模,取余),++,--赋值运算符:=关系运算符:<,>,>=,<=,==,!=,instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>条件运算符:?:扩展赋值运......
  • 运算符
    目录算术运算符逻辑运算符位运算符三元运算符算术运算符如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整......
  • 类和对象——C++运算符重载
    概念:对已有的运算符重新定义,赋予其另一种功能,以适应不同数据类型。。重载的两类方法:1.类成员函数重载2.全局函数重载注意:运算符重载也可以实现函数重载引入:我们希望......
  • C++运算符重载相关知识点
    1.运算符重载限制重载后的运算符必须至少有一个操作数是用户自定义的类型使用运算符时不能违反运算符原来的句法规则,也不能修改运算符的优先级。2.不能进行重载的运......