有人可以向我解释为什么这是真的吗?
in_array('', array(0,1,2));
Run Code Online (Sandbox Code Playgroud)
因为,如文档中所述:
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )除非设置严格,否则使用松散比较搜索干草堆的针.
...... 在PHP中'' == 0也是如此.如果你想使用严格的比较,只需in_array()用三个参数调用:
in_array('', array(0, 1, 2), true); // false
Run Code Online (Sandbox Code Playgroud)
...所以类型也会被检查,String ''也没有机会与Numbers匹配.