<?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