in_array()
函數在 PHP 中用于檢查一個數組中是否存在指定的值
但是,有時候這種寬松的類型比較可能會導致意外的結果。例如:
$array = [0, 1, 2, 3];
$value = '0';
if (in_array($value, $array)) {
echo "Value found!";
} else {
echo "Value not found!";
}
在上面的代碼中,我們期望 in_array()
函數返回 false
,因為 $value
是一個字符串而數組中只有整數。但由于寬松的類型比較,'0'
(字符串)被轉換成了 0
(整數),所以 in_array()
函數返回 true
。
為了避免這種意外情況,你可以使用嚴格類型檢查。通過將第三個參數設置為 true
,in_array()
函數將執行嚴格類型比較。這意味著它不僅比較值,還比較變量的類型。例如:
$array = [0, 1, 2, 3];
$value = '0';
if (in_array($value, $array, true)) {
echo "Value found!";
} else {
echo "Value not found!";
}
在這個例子中,in_array()
函數將返回 false
,因為它同時檢查了值和類型。這樣可以確保你獲得預期的結果,并避免因類型轉換引起的錯誤。