<?php function test($a="all"){ var_dump(in_array($a,array(0,1))); } test("all"); test(1);
返回两个true
学习是最好的投资!
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
- 如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。
你需要使用第三个参数。
PHP是弱类型语言,会根据具体场景自动转化变量类型。你要搜索的数组明显都是整数,那就只能把变量转为整数,纯字符转为为整数是0,自然就在里面了。
这是因为字符串存在转为未数字的问题var_dump('d'==0); true 纯字符会转化为 0
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
你需要使用第三个参数。
PHP是弱类型语言,会根据具体场景自动转化变量类型。你要搜索的数组明显都是整数,那就只能把变量转为整数,纯字符转为为整数是0,自然就在里面了。
这是因为字符串存在转为未数字的问题var_dump('d'==0); true 纯字符会转化为 0