首頁 > 後端開發 > php教程 > 利用PHP8中的函數str_contains()實現快速字串匹配

利用PHP8中的函數str_contains()實現快速字串匹配

王林
發布: 2023-05-17 18:32:01
原創
1809 人瀏覽過

隨著網路的發展,字串處理在程式設計中成為了一項常見的任務。針對字串比對問題,PHP8引入了新的函數str_contains(),該函數可以快速地傳回一個字串中是否包含指定的字串。對於需要頻繁進行字串匹配的開發人員來說,這款函數將會是一個非常有用的工具。

一、str_contains()函數的基本用法
str_contains()函數用來判斷字串中是否包含指定的字串,其語法如下:

bool str_contains( string $haystack , string $needle )
其中,$haystack表示原始字串,$needle表示要偵測的字符串。如果原始字串中包含指定的字串,則函數傳回true,否則傳回false。

以下是一些範例:

範例1:

$str1 = "Hello World!";
if (str_contains($str1, "World")) {

echo "The string contains the word 'World'";
登入後複製

} else {

echo "The string does not contain the word 'World'";
登入後複製

}

該範例中的$haystack為"Hello World!",$needle為"World"。由於$haystack中包含$needle,因此函數將傳回true,並列印出字串"The string contains the word 'World'"。

範例2:

$str2 = "Hello World!";
if (str_contains($str2, "Universe")) {

echo "The string contains the word 'Universe'";
登入後複製

#} else {

echo "The string does not contain the word 'Universe'";
登入後複製

}

該範例中的$haystack為"Hello World!",$needle為"Universe"。由於$haystack中不包含$needle,因此函數將傳回false,並印出字串"The string does not contain the word 'Universe'"。

二、str_contains()函數的優勢
在之前,PHP已經有了函數strstr()和strpos(),用於在字串中尋找子字串並返回其位置。然而,str_contains()函數相較之下有以下幾個優點:

  1. 更簡潔的程式碼
    使用str_contains()函數,只需要一行程式碼就可以完成字串比對的任務。例如:

if (str_contains($str, "needle")) {

// Code to execute if the string contains "needle"
登入後複製

}

比較而言,使用strstr()或strpos( )函數時,需要在回傳值上進行if條件判斷,然後才能確定是否符合成功。

  1. 更直覺的程式碼
    str_contains()函數的命名非常直觀,使用起來更符合程式設計人員的自然習慣。與其他函數相比,使用這個函數開發人員不需要閱讀函數文件找出合適的參數值,直接使用識別度更高。
  2. 更高的效能
    經過測試,str_contains()函數的效能可與先前的字串比對函數相比,甚至更好。在大數據量的情況下,str_contains()函數能夠提供更快的匹配速度,因為其內部實作採用了更有效率的演算法。

三、如何遷移專案以使用str_contains()函數
如果你希望在專案中使用str_contains()函數,需要確保PHP版本已經升級到8.0或以上。一旦升級完畢,你需要對專案中使用strstr()或strpos()函數的地點進行修改。

首先,你需要根據專案的實際情況選擇需要更新的地點。如果需要在大量的程式碼中使用該函數,那麼可以使用搜尋和取代功能,將舊的函數呼叫修改為新的函數呼叫。

例如,將$strstr()函數的呼叫:

if (strstr($haystack, $needle)) {

// ...
登入後複製
登入後複製

}

##修改為$str_contains()函數的呼叫:

if (str_contains($haystack, $needle)) {

// ...
登入後複製
登入後複製
}

這樣,你的專案就能夠開始使用str_contains()函數了。

四、結論

str_contains()函數是PHP8中引入的字串比對函數之一,效能更強,使用更簡潔明了。如果你目前還在使用strstr()或strpos()函數,在有需要的情況下,建議積極地遷移為str_contains()函數。

以上是利用PHP8中的函數str_contains()實現快速字串匹配的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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