PHP in_array()认为随机字符串和0是相同的

时间:2014-01-13 01:09:14

标签: php arrays comparison

检查出来:

print_r( (int) in_array('hello',array( 0 => 0)) );

它返回1

由于您可能无法相信它,所以这是一个键盘:http://codepad.org/XlNKbrFk

这是官方参考:
http://php.net/manual/en/function.in-array.php

  

bool in_array(混合$ needle,数组$ haystack [,bool $ strict = FALSE])

是的,似乎is_array认为随机字符串和0是相同的。

所以我的问题是,我找到了一个错误吗?这种行为是否合理?是醉酒的逻辑还是什么?谁能帮我?我正在努力解决这个问题。

1 个答案:

答案 0 :(得分:1)

这不是一个错误。来自bug tracker

  

不是错误... PHP确实试图将'foobar'转换为数字,并且   因为那是不可能的,它变成0.这就是为什么有   第三个参数。