首頁 > 後端開發 > php教程 > 為什麼 PHP 的 `in_array()` 和 `array_search()` 有時會傳回意外結果?

為什麼 PHP 的 `in_array()` 和 `array_search()` 有時會傳回意外結果?

Susan Sarandon
發布: 2024-12-10 22:49:12
原創
363 人瀏覽過

Why Does PHP's `in_array()` and `array_search()` Sometimes Return Unexpected Results?

PHP in_array() 和array_search() 特殊行為:深入研究可選參數

在使用PHP 的in_array() 時,您可能會遇到搜尋不存在的元素時出現意外行為。本文研究了這個奇怪的現象,並透過引入晦澀難懂的 $strict 參數來探索解決方案。

考慮像 $arr = [TRUE, "some string", "something else"] 這樣的陣列。使用 in_array() 搜尋“test”時,令人驚訝的是它會傳回 TRUE。類似地,array_search() 檢索「不準確」的索引 0。這種行為最初看起來令人費解,導致人們假設 TRUE 自動觸發通用的正結果。

但是,這不是一個錯誤,而是一個有意的功能。 in_array() 和 array_search() 都有一個經常被忽略的第三個參數 $strict,它決定比較模式。它的預設值 FALSE 允許鬆散 (==) 比較,忽略類型差異。

因此,在 $arr 的情況下,TRUE ==「任何非空字串」計算結果為 TRUE。將 $strict 設為 TRUE,您可以指示 PHP 使用嚴格 (===) 比較,驗證值和類型相等性。

這些知識使令人困惑的行為變得清晰。透過嚴格比較,您可以避免誤解並確保搜尋結果準確。如需進一步了解 PHP 中的相等性和同一性比較,請參閱提供的參考資料。

以上是為什麼 PHP 的 `in_array()` 和 `array_search()` 有時會傳回意外結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板