為什麼 PHP 的 in_array 函式在傳遞 0 時會返回 true?


in_array 函式返回 True 的原因可能是字串到數字的轉換。當一個字串傳遞給函式時,它會返回 0,而 0 正是需要搜尋的值。

PHP 使用鬆散比較,即在比較元素時使用 == 而不是 ===。因此,比較的是它們的值,而不是型別。

另一個原因是型別轉換,這意味著變數型別在程式碼上下文中處理。

例如,當一個浮點數賦值給一個變數時,它會變成一個浮點值。當一個字串轉換為整數時,它的行為方式與此類似。

為了避免這種行為,可以傳遞第三個引數,它以嚴格模式比較資料,其中比較值和型別。

以下是函式在傳遞字串時的行為:

示例

即時演示

echo intval("Hello");

輸出

這將產生以下輸出:

0

更新於: 2020-04-06

250 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告