当我们寻找空字符串时,为什么in_array函数返回TRUE?

Bro*_*oel 2 php

有人可以向我解释为什么这是真的吗?

in_array('', array(0,1,2));
Run Code Online (Sandbox Code Playgroud)

rai*_*7ow 6

因为,如文档中所述:

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匹配.