当前位置:首页 > PHP文摘 > 列表

PHP7引入的"??"和"?:"的区别讲解

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-15 21:42:24 浏览: 评论:0 

今天小编就为大家分享一篇关于PHP7引入的"??"和"?:"的区别讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧。

实践出真知~

测试代码

输入测试:

  1. <?php 
  2.   $array = [ 
  3.     'a' => 1, 
  4.     'b' => 2, 
  5.     'c' => [], 
  6.   ]; 
  7.   $a = $array['c'] ?? 0; 
  8.   $b = $array['c'] ?: 0; 
  9.   $c = $array['d'] ?? 0; 
  10.   $d = $array['d'] ?: 0; 
  11.   $e = $array['c'] ? 1 : 0; 
  12.   $f = isset($array['c']) ? 1 : 0; 
  13.   $g = $array['d'] ? 1 : 0; 
  14.   $h = isset($array['d']['e']) ? 1 : 0; 
  15.   $i = !emptyempty($array['c']) ? 1 : 0; 
  16.   $j = !emptyempty($array['d']) ? 1 : 0; 
  17.   var_dump($a); 
  18.   var_dump($b); 
  19.   var_dump($c); 
  20.   var_dump($d); 
  21.   var_dump($e); 
  22.   var_dump($f); 
  23.   var_dump($g); 
  24.   var_dump($h); 
  25.   var_dump($i); 
  26.   var_dump($j); 

输出结果:

  1. PHP Notice:  Undefined index: d in /home/fanyu/abc.php on line 11 
  2. PHP Notice:  Undefined index: d in /home/fanyu/abc.php on line 14 
  3. array(0) { 
  4. int(0) 
  5. int(0) 
  6. int(0) 
  7. int(0) 
  8. int(1) 
  9. int(0) 
  10. int(0) 
  11. int(0) 
  12. int(0) 

结论:

$a ?? 0 等同于 isset($a) ? $a : 0。

$a ?: 0 等同于 $a ? $a : 0。

empty: 判断一个变量是否为空(null、false、00、0、'0′、』这类,都会返回true)。

isset: 判断一个变量是否设置(值为false、00、0、'0′、』这类,也会返回true)。

Tags: PHP7 ?? ?:

分享到: