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 不愧是世界上最好的语言。令人开心。
标签: 开发