“PHP7”的版本间的差异

来自tomtalk
跳转至: 导航搜索
(创建页面,内容为“==<=>组合比较运算符== 电梯直达 跳转到指定楼层 1# Nokia 发表于 2015/11/8 04:10 | 只看该作者 回帖奖励 太空船操作符,即 <=>,...”)
 
Tom讨论 | 贡献
组合比较运算符
第1行: 第1行:
 
==<=>组合比较运算符==  
 
==<=>组合比较运算符==  
电梯直达
 
跳转到指定楼层 1#
 
Nokia 发表于 2015/11/8 04:10 | 只看该作者 回帖奖励
 
 
太空船操作符,即 <=>,又称组合比较运算符,结合比较运算符。
 
太空船操作符,即 <=>,又称组合比较运算符,结合比较运算符。
PHP7 null结合运算符参见:空结合运算符??
+
 
 
组合比较运算符,英文叫作combined comparison operator,符号为<=>,它有一个形象的名字,叫作太空船操作符。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。
 
组合比较运算符,英文叫作combined comparison operator,符号为<=>,它有一个形象的名字,叫作太空船操作符。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。
语法是这样的:$c = $a <=> $b;
+
 
 +
语法是这样的:
 +
 
 +
<source lang="php">
 +
$c = $a <=> $b;
 +
</source>
 +
 
 
这句代码的意思是
 
这句代码的意思是
如果$a > $b, $c 的值为1
+
 
如果$a == $b, $c 的值为0
+
* 如果$a > $b, $c 的值为1
如果$a < $b, $c 的值为-1
+
* 如果$a == $b, $c 的值为0
 +
* 如果$a < $b, $c 的值为-1
  
 
在没有太空船运算符的时候,我们只能这样写代码
 
在没有太空船运算符的时候,我们只能这样写代码
 +
 +
<source lang="php">
 
$c = $a > $b ? 1 : ( $a==$b ? 0 : -1 );
 
$c = $a > $b ? 1 : ( $a==$b ? 0 : -1 );
复制代码
+
</source>
或者用if else条件语句写得更多,
+
 
现在是不是简单多了?
+
或者用if else条件语句写得更多,现在是不是简单多了?
  
 
==空合并运行符??==
 
==空合并运行符??==

2017年10月24日 (二) 09:28的版本

<=>组合比较运算符

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

组合比较运算符,英文叫作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条件语句写得更多,现在是不是简单多了?

空合并运行符??

电梯直达 跳转到指定楼层 1#

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; 或者条件结构运算 if( isset($b) ){

       $a = $b;

} else {

       $a = $c;

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