我注意到以下奇怪的事情:
var_dump(in_array("test", array_keys(array("hello"))));
收益率:bool(true)
这怎么可能?数组不包含键,因此array_keys()
将返回一个空数组。测试不在这个空数组中,为什么它会返回true?这是PHP中的错误吗?
答案 0 :(得分:5)
简单回答:宽松的打字,'test' == 0
使用
var_dump(in_array("test", array_keys(array("hello")), true));
严格打字
所有 数组都有键,如果你没有显式分配键,那么PHP将根据0的递增整数分配一个(因此{{1} }).... array_keys()不会为空,因为PHP会将'test' == 0
的键分配给0
的数组条目