為什麼 PHP 的 in_array 函式在傳遞 0 時會返回 true?
in_array 函式返回 True 的原因可能是字串到數字的轉換。當一個字串傳遞給函式時,它會返回 0,而 0 正是需要搜尋的值。
PHP 使用鬆散比較,即在比較元素時使用 == 而不是 ===。因此,比較的是它們的值,而不是型別。
另一個原因是型別轉換,這意味著變數型別在程式碼上下文中處理。
例如,當一個浮點數賦值給一個變數時,它會變成一個浮點值。當一個字串轉換為整數時,它的行為方式與此類似。
為了避免這種行為,可以傳遞第三個引數,它以嚴格模式比較資料,其中比較值和型別。
以下是函式在傳遞字串時的行為:
示例
echo intval("Hello");
輸出
這將產生以下輸出:
0
廣告