我不知道怎么称呼这一点,所以我就举一个例子。处理的“或” Ruby的条件与PHP
在PHP
1==2 || 2
返回1
或true
在Ruby
1==2 || 2
返回2
(第二条语句如果第一计算结果为假)。
有没有在PHP中实现类似的事情,任何短的路?
我不知道怎么称呼这一点,所以我就举一个例子。处理的“或” Ruby的条件与PHP
在PHP
1==2 || 2
返回1
或true
在Ruby
1==2 || 2
返回2
(第二条语句如果第一计算结果为假)。
有没有在PHP中实现类似的事情,任何短的路?
如何
1==2 ? 1==2 : 2
或PHP 5.3
1==2 ?: 2
我认为第二个将是最短的一段代码。太糟糕了,只有PHP 5.3+。 – Dogbert 2010-05-31 13:09:45
在PHP中,布尔表达式的结果总是一个布尔值。所以1==2 || 2
给true
。
我能想到的最好的事情是
($var = 1 == 2) || ($var = 2)
然后$var
将2
。
根据不同的答案Matchu的问题,你可能想:
(($var = 1) == 1) || ($var = 2)
或
($var = 1 == 1) || ($var = 2)
如何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
如果语句是'1 == 1 | | 2',你会想要返回整数'1',还是'true'? – Matchu 2010-05-30 19:58:51
在这种情况下,我想真正要返回。我希望返回第一个非虚假陈述,在这种情况下,首先是正确的。 – Dogbert 2010-05-30 20:47:24