杜郎俊赏 - dujun.io

php 双问号可以链式使用

刚才改网站代码,偶然发现 php 双问号是可以链式使用的:

$ret = $a ?? $b ?? $c ?? 4;

原本我是应该加括号的:

$ret = $a ?? ($b ?? ($c ?? 4));

无心之失忘了加括号,竟然可以执行,才发现双问号可以链式使用。

之所以有这样的乌龙,是因为我这个从 php5 时代入行的古典程序员,对新的语法糖是想当然的,没有去仔细看过文档。双问号的使用习惯也是从三元式演变过来的,自然没想过还能链式使用。

用三元式表达上面的语句是这样的:

$ret = isset($a) ? $a : (isset($b) ? $b : (isset($c) ? $c : 4));

php 不愧是世界上最好的语言。令人开心。

标签: 开发
日期:2022-11-11