在 PHP 中有没有更漂亮的方法来做到这一点?
$a = isset($a) ? $a : $b;
在 Python 中,我会做类似的事情:
a = a or b
不,没有。
PHP 开发人员已将其作为未来版本的可能功能进行了讨论 -请参见此处- 但已被拒绝。
如果你使用 php>=5.3 你可以做得更漂亮一点:
$a = isset($a) ?: $b;
编辑:在这种情况下isset($a)
是一个问题,因为如果isset($a)
return true
,那么$a
将被设置为true
. 您可以考虑将其更改为
$a = isset($a) ?: $b;
但要小心,如果$a == false || $a == 0
then$a
将被设置为$b
从 5.3 开始,您可以执行以下操作:
$a = isset($a) ?: $b;
编辑
正如评论中提到的 - 这实际上将$a
等于 true (作为 的结果isset
)而不是值$a