我不知道该怎么称呼它,所以我举一个例子。
在PHP中
1==2 || 2
返回1
或true
在Ruby中
1==2 || 2
返回2
(第二个语句,如果第一个评估为false)。
在PHP中实现类似的东西有什么简短的方法吗?
答案 0 :(得分:2)
怎么样
1==2 ? 1==2 : 2
或在PHP 5.3中
1==2 ?: 2
答案 1 :(得分:1)
在PHP中,布尔表达式的结果总是一个布尔值。因此1==2 || 2
会true
。
我能想到的最好的事情是
($var = 1 == 2) || ($var = 2)
然后$var
将为2
。
根据Matchu问题的答案,您可能需要:
(($var = 1) == 1) || ($var = 2)
或
($var = 1 == 1) || ($var = 2)
答案 2 :(得分:1)
1 == 2 or 2
怎么样?
但是,如果直接打印,结果可能不一样,因此您需要将结果放在变量中。举个例子:
$result = "a" or 2;
var_dump($result); // prints string(1) "a"
var_dump("a" or 2); // prints bool(true)
看看这里:http://www.php.net/manual/en/language.operators.logical.php