php ?? ?:

$a ?? 0 isset($a) ? $a : 0。

$a ?: 0 $a ? $a : 0。

isset():判断是否设置这个变量(值为null或只定义了变量没赋值返回false)
empty():判断这个变量是否为空(值为0,’0’,false,[],null,’’ 返回true)

本作品采用《CC 协议》,转载必须注明作者和本文链接
放肆疯狂,委婉洒脱。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 9

$a ?: 0 相当于 $a ? $a : 0 不要误导

3年前 评论
bigdaxin (楼主) 3年前
bigdaxin (楼主) 3年前
sunny123456 3年前
bigdaxin (楼主) 3年前
sunny123456 3年前

@荒街! $a ?: 0 这个不是等价于 $a ? ' ' : 0 不是吗? 我一直是这么理解的。

3年前 评论
命中水 3年前
$a ?:0;

?:相当于把$a逻辑运算,前提是定义了,

$a??0;

??相当于isset,都是语法糖而已!

3年前 评论
bigdaxin (楼主) 3年前
playmaker

判断数组中 是否存在 定义某个值 ,当值为null isset 返回false 可以参考 array_key_exists

3年前 评论
Mumujin

php5

是否存在


echo isset($a['b']) ? $a['b'] : 'no'

空值判断


echo $a ? $a : '1'

php7 php8

是否存在

echo $a['b'] ?? 'no'

$a ??= 'no'

$a['b'] ?? throw new OffsetDoesNotExist('b');

空值判断


echo $a ?: '1'
3年前 评论

看一遍文档 加深印象

3年前 评论
白小二

@荒街! 不要想太多,??判断是否设置,其它场景用 ?:

3年前 评论
xianyunyehe

当你不熟悉语法糖的时候, 就写完整的语法。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!