您当前的位置: 首页 >  php

彭世瑜

暂无认证

  • 1浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

彭世瑜 发布时间:2021-06-12 11:54:10 ,浏览量:1

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

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

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

isset: 判断一个变量是否设置(值为false、00、0、’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

参考 PHP7 引入的“??” 和“?:”的区别

关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.0587s