PHP7的三元运算符"??"和"?:"详细讲解


三元运算符

PHP 中也有三元运算符,三元运算符可以实现简单的条件判断功能,即根据第一个表达式的结果在另外两个表达式中选择一个并执行,三元运算符也被称为三目运算符或者条件运算符

三元运算符的功能与“if else”语句一致,它可以在一行中书写,代码精练、执行效率更高。在 PHP 程序中恰当地使用三元运算符能够让脚本更为简洁、高效。

三元运算符的语法格式如下:

(expr1)?(expr2):(expr3); //表达式1?表达式2:表达式3

如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。

??运算符

PHP 7添加了新的运算符双问号(??)运算符。在PHP 7中,双问号(??)运算符称为Null合并运算符

$a??$b;

$a是不是是null,如果不为null,则返回$a,否则返回$b;

?:运算符

$a ? : $b;
以上简写语法被成为evlis运算符,下面用evlis运算符,三元运算符以及常用的if else进行对比,结果相同。

//使用elvis运算符
$a ? : $b;

//使用三元运算符
$a ? $a : $b;

//使用if / else
if($a){
return $a;
} else {
return $b;
}

//注意:这里的$a和$b并不是指定数值,它可以是任意类型的数据
关于以上代码可以理解为,当$a条件成立如果为0或者false均被视为条件不成立,则直接返回$a的结果,不成立,则返回$b。

值得注意的一点:$a必须已经有过声明,否则代码会报错。

在PHP7中引入了null合并运算符(??),具体语法如下:

$a??$b;
$a是不是是null,如果不为null,则返回$a,否则返回$b;

下面用null合并运算符,三元运算符以及常用的if else进行对比,结果相同。

//作为if语句:
if(isset($a)){
$a;
} else {
$b;
}

//三元运算符:
(isset($a) ? $a : $b);

//null合并运算符
$a ?? $b;

0

【PHP7的三元运算符"??"和"?:"详细讲解隶属于分类: php

它起初由本站用户:刘欣Eden于4年前 创建。

该内容的链接是:

目录