“PHP7”的版本间的差异

来自tomtalk
跳转至: 导航搜索
组合比较运算符
Tom讨论 | 贡献
空合并运行符??
 
第25行: 第25行:
  
 
==空合并运行符??==
 
==空合并运行符??==
电梯直达
+
 
跳转到指定楼层 1#
+
PHP 7引进了空合并运行符??,空值合并运行符,英文名叫the null coalescing operator,符号写作??
Nokia 发表于 2015/11/8 03:50 | 只看该作者 回帖奖励
+
 
PHP 7引进了空合并运行符??,空值合并运行符,英文名叫the null coalescing operator,符号写作??,语法形如 $a = $b ?? $c; 意思是:如果变量 $b 已经定义,没有被注销,并且不为null, 就将 $b 的值赋给变量 $a, 否则将变量 $c 的值赋给变量 $a.
+
语法形如
$a = $b ?? $c; 相当三元运算的 $a = isset($b) ? $b : $c;  
+
 
 +
<source lang="php">
 +
$a = $b ?? $c;  
 +
</source>
 +
 
 +
意思是:如果变量 $b 已经定义,没有被注销,并且不为null, 就将 $b 的值赋给变量 $a, 否则将变量 $c 的值赋给变量 $a.
 +
 
 +
相当三元运算的
 +
 
 +
<source lang="php">
 +
$a = isset($b) ? $b : $c;  
 +
</source>
 +
 
 
或者条件结构运算
 
或者条件结构运算
 +
 +
<source lang="php">
 
if( isset($b) ){
 
if( isset($b) ){
        $a = $b;
+
    $a = $b;
 
} else {
 
} else {
        $a = $c;
+
    $a = $c;
 
}
 
}
复制代码
+
</source>
 +
 
 
注意:PHP null合并运算符??前面的变量不存在时不会报错,但如果??后面的变量没有定义,则会触发E_NOTICE级别的错误。
 
注意:PHP null合并运算符??前面的变量不存在时不会报错,但如果??后面的变量没有定义,则会触发E_NOTICE级别的错误。

2017年10月24日 (二) 09:32的最后版本

<=>组合比较运算符

太空船操作符,即 <=>,又称组合比较运算符,结合比较运算符。

组合比较运算符,英文叫作combined comparison operator,符号为<=>,它有一个形象的名字,叫作太空船操作符。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。

语法是这样的:

$c = $a <=> $b;

这句代码的意思是

  • 如果$a > $b, $c 的值为1
  • 如果$a == $b, $c 的值为0
  • 如果$a < $b, $c 的值为-1

在没有太空船运算符的时候,我们只能这样写代码

$c = $a > $b ? 1 : ( $a==$b ? 0 : -1 );

或者用if else条件语句写得更多,现在是不是简单多了?

空合并运行符??

PHP 7引进了空合并运行符??,空值合并运行符,英文名叫the null coalescing operator,符号写作??。

语法形如

$a = $b ?? $c;

意思是:如果变量 $b 已经定义,没有被注销,并且不为null, 就将 $b 的值赋给变量 $a, 否则将变量 $c 的值赋给变量 $a.

相当三元运算的

$a = isset($b) ? $b : $c;

或者条件结构运算

if( isset($b) ){
    $a = $b;
} else {
    $a = $c;
}

注意:PHP null合并运算符??前面的变量不存在时不会报错,但如果??后面的变量没有定义,则会触发E_NOTICE级别的错误。