2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > PHP

PHP7 语法“??” 和“?:”的区别

时间:05-29来源:作者:点击数:26

PHP7 语法“??” 和“?:”的区别

  • $a ?? 0 等同于 isset($a) ? $a : 0
  • $a ?: 0 等同于 $a ? $a : 0
  • empty: 判断一个变量是否为空(nullfalse000、’0′、』这类,都会返回true)
  • isset: 判断一个变量是否设置(值为false000、’0′、』这类,也会返回true)

示例

  • // 定义之前
  • print_r($name ?? 'Tom');
  • // Tom
  • print_r($name ?: 'Jack');
  • // Jack
  • // Undefined variable: name
  • // 定义之后
  • $name = '';
  • print_r($name ?? 'Tom');
  • // ''
  • print_r($name ?: 'Jack');
  • // Jack

示例

当变量 $a 已定义,bool值为false的时候

  • $a = 0;
  • $b = 1;
  • var_dump($a ?? $b); // int(0)
  • var_dump(isset($a) ? $a : $b); // int(0)
  • var_dump($a ?: $b); // int(1)
  • var_dump($a ? $a : $b); // int(1)

当变量 $a 未定义的时候

  • $b = 1;
  • var_dump($a ?? $b); // int(1)
  • var_dump(isset($a) ? $a : $b); // int(1)
  • var_dump($a ?: $b); // PHP Notice: Undefined variable: a
  • var_dump($a ? $a : $b); // PHP Notice: Undefined variable: a

PHP7中的运算符 ?: 和 JavaScript 中运算符|| 作用基本一致,都是三元运算符的简写

  • console.log(true ? true : false) // true
  • console.log(true || false) // true
  • console.log(false || true) // true
  • console.log(0 || 1) // 1
  • console.log("" || "Tom") // Tom
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门