检查出来:
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是相同的。
所以我的问题是,我找到了一个错误吗?这种行为是否合理?是醉酒的逻辑还是什么?谁能帮我?我正在努力解决这个问题。
答案 0 :(得分:1)
这不是一个错误。来自bug tracker
不是错误... PHP确实试图将'foobar'转换为数字,并且 因为那是不可能的,它变成0.这就是为什么有 第三个参数。