2010-12-11 40 views
3
$val1 = false; 
$val2 = 10; 

$variable = $val1 || $val2; 

上面的代码使得$variable = true

如果$val1为false,是否有PHP中的任何运算符会使$variable取值$val2? 我想||会做到这一点,但只有当任一值的是真的,还是假的,如果两个都是假返回true ...

回答

5

三元运算符

$variable = ($val1) ? $val1 : $val2; 

或(在PHP 5.3+ )

$variable = ($val1) ?: $val2; 
+1

您应该提到第二种可能性仅适用于PHP> = 5.3。 – 2010-12-11 21:03:38

+0

(+1)我正在输入一个答案,然后我看到你的显示。我没有意识到第二种语法! – ClosureCowboy 2010-12-11 21:03:53

+0

@Felix,这就是我最初想做的,以及我把更长的版本放在第一位的原因:)修正,欢呼声。 – 2010-12-11 21:06:41

3

运营商||做逻辑或,这就是为什么你只能得到真或假回来。

您可能需要使用PHP ternary操作:

$variable = $val1? "default value" : $val2; 
2

也absue运算符优先级可以:

$variable = $value1 or $variable = "value2"; 

or=弱。如果添加额外的空格,它会变得更具可读性。但是这或多或少是缺乏?的解决方法:在PHP < 5.3。

+0

有趣的是,这个函数可以像'$ var = $ a或$ var = $ b或....' – Alex 2010-12-11 21:28:12

相关问题