“PHP7”的版本间的差异
来自tomtalk
(→组合比较运算符) |
(→空合并运行符??) |
||
第25行: | 第25行: | ||
==空合并运行符??== | ==空合并运行符??== | ||
− | + | ||
− | + | PHP 7引进了空合并运行符??,空值合并运行符,英文名叫the null coalescing operator,符号写作??。 | |
− | + | ||
− | PHP 7引进了空合并运行符??,空值合并运行符,英文名叫the null coalescing operator,符号写作?? | + | 语法形如 |
− | + | ||
+ | <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; | |
} else { | } else { | ||
− | + | $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级别的错误。