2

在 PHP 中有没有更漂亮的方法来做到这一点?

$a = isset($a) ? $a : $b;

在 Python 中,我会做类似的事情:

a = a or b
4

3 回答 3

2

不,没有。

PHP 开发人员已将其作为未来版本的可能功能进行了讨论 -请参见此处- 但已被拒绝。

于 2013-05-08T11:00:49.487 回答
1

如果你使用 php>=5.3 你可以做得更漂亮一点:

$a = isset($a) ?: $b;

编辑:在这种情况下isset($a)是一个问题,因为如果isset($a)return true,那么$a将被设置为true. 您可以考虑将其更改为

$a = isset($a) ?: $b;

但要小心,如果$a == false || $a == 0then$a将被设置为$b

于 2013-05-08T11:00:45.127 回答
0

从 5.3 开始,您可以执行以下操作:

$a = isset($a) ?: $b;

编辑

正如评论中提到的 - 这实际上将$a等于 true (作为 的结果isset)而不是值$a

于 2013-05-08T11:00:20.753 回答