PHP -一行更漂亮


PHP - Prettier one-line if

在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

的值。