2013-05-08 52 views
2

在PHP中有更漂亮的方法吗?PHP - 更漂亮的单行如果

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

在Python我会做这样的事情:

a = a or b 
+1

没有。这是语法。 – Raptor 2013-05-08 10:59:05

+0

我试图找到类似于“a = a或b”的东西,但是都没有。 – mzedeler 2013-05-08 11:00:02

+0

你想做什么? – 2013-05-08 11:00:07

回答

2

没有没有。

PHP开发人员已经讨论过将其作为未来版本的可能功能 - See here - 但被拒绝。

0

由于5.3,你可以这样做:

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

编辑

如在评论中提到过 - 这实际上会使$a等于真(因为isset)而不是$a

+3

如果它存在,这会将'$ a'设置为true。 – Dogbert 2013-05-08 11:01:45

1

值。如果你使用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

如果它存在,这将设置$ a为真。 – Dogbert 2013-05-08 11:03:17

+0

啊。好抓@Dogbert我的重点是让语法更简洁,而且实际上忽略了它会做的事情! – robjmills 2013-05-08 11:04:37

+0

right @Dogbert谢谢。 – Kasyx 2013-05-08 11:06:16