在PHP中是否有更漂亮的方法来做到这一点?
$a = isset($a) ? $a : $b;
在Python中,我会这样做:
a = a or b
没有。
它已经被PHP开发人员作为未来版本的可能特性进行了讨论-见这里-但已被拒绝。
如果你使用php>=5.3,你可以做得更漂亮:
$a = isset($a) ?: $b;
编辑:在这种情况下,isset($a)
是一个问题,因为如果isset($a)
返回true
,那么$a
将被设置为true
。你可以考虑改成
$a = isset($a) ?: $b;
但是如果$a == false || $a == 0
,那么$a
将被设置为$b
从5.3开始,你可以这样做:
$a = isset($a) ?: $b;
编辑
正如评论中提到的 -这实际上会使$a
等于true(作为isset
的结果),而不是$a