在Javascript和Python中,0 || 1
返回1
。
但在PHP中,0 || 1
返回true。
如果我希望0 || 1
在PHP中返回1
怎么办?
另一个例子,
$a
是array(array('test'))
我希望$a['test'] || $a[0] || array()
返回array('test')
,怎么做?
答案 0 :(得分:12)
其他答案似乎只关心将布尔值转换为整数。如果第一个值是假的(0
,false
,等等。),我认为你真的希望第二个值成为结果吗?
对于其他语言的行为,我们在PHP中最接近的是短手“三元”运算符:0?:1
。
可以在您的脚本中使用,例如:$result = get_something() ?: 'a default';
有关详细信息,请参阅ternary operator documentation。
答案 1 :(得分:9)
因为0 || 1
是一个布尔表达式,所以它假定你想要一个布尔结果。
您可以将其强制转换为int:
echo (int)(0 || 1);
答案 2 :(得分:3)
在PHP中,运算符||
返回一个布尔值,无论是真还是假。
你可能想要的是这样的:$result = (0 || 1) ? 1 : 0;
答案 3 :(得分:2)
您可以使用
(0 || 1) ? 1 : 0
答案 4 :(得分:1)
if(0||1)
return 1;
else return 0;
答案 5 :(得分:1)
您可以使用强制转换为整数
echo (int)(0||1);
答案 6 :(得分:1)
将结果转换为int; P (int)(0 || 1)
虽然它仅适用于1. (int)(0 || 2)
也会返回1.