我和我的朋友都在编程营地,而我们却在弄乱一些php。尽管我们俩都注意到了一些奇怪的东西,但我们无法找出导致错误的原因。由于某些原因,添加括号会更改vardump()的输出。这是怎么回事?
var_dump((bool) (2==5)); //returns bool(false)
var_dump((bool) 2==5); //returns bool(true)
答案 0 :(得分:5)
类型转换适用于第一个实体或操作数。
(2==5)
,因为它用括号括起来了,所以一起解释。因此2==5
是false
,所以(bool) false
仍然是false
。
第二个是将2
转换为true
的布尔值,并且true
与5
的松散比较也是true
,因为其他整数比0粗略地评估为true。
这可以归结为:
2 == true
5 == true