$x = (False or 123)
echo $x
x= (False or 123)
print(x)
在php中,答案是1
,而python答案是123
。
为什么?
答案 0 :(得分:1)
Python 0 => array(
0 => 1 1/2
1 => ⅛
2 => 1-2
)
)
和and
执行“麦卡锡评估”,返回最后一个值,请参阅https://stackoverflow.com/a/22598675/196206或Wikipedia。
PHP也会进行短路评估,但始终只返回一个布尔值:http://php.net/manual/en/language.operators.logical.php
答案 1 :(得分:-1)
PHP:$ x =(False或123)。 False为false(!),123为true,false或true == true,因此$ x为true(或打印时为1。
Python:先执行或操作,然后将结果赋给x。 int(False)是0,int(123)是123,所以得到123.在Python中,有一个技巧,或者返回值是使其成为真的值,而不是布尔结果。看这个页面: http://www.diveintopython.net/power_of_introspection/and_or.html