函式名稱:substr_compare()
適用版本:PHP 5, PHP 7
函式描述:substr_compare()函式用於比較兩個字串的一部分內容,並返回它們之間的差異。它是區分大小寫的比較函式。
語法:int substr_compare(string $main_str, string $str, int $offset, int $length [, bool $case_insensitivity = false])
引數:
- $main_str:需要進行比較的主字串。
- $str:需要進行比較的字串。
- $offset:比較開始的位置,可以是正數或負數。如果是正數,表示從主字串的第 $offset 個字元開始比較;如果是負數,表示從主字串的倒數第 $offset 個字元開始比較。
- $length:比較的長度,如果為0,則比較到主字串或字串的最後一個字元結束。
- $case_insensitivity(可選):是否進行大小寫不敏感的比較,預設為false,即進行大小寫敏感的比較。
返回值:如果主字串在指定位置開始的子字串與比較字串相等,則返回0;如果主字串小於比較字串,則返回一個負數;如果主字串大於比較字串,則返回一個正數。
示例:
$main_str = "Hello World";
$str = "Hello";
$offset = 0;
$length = 5;
$result = substr_compare($main_str, $str, $offset, $length);
if ($result === 0) {
echo "主字串與比較字串相等";
} elseif ($result < 0) {
echo "主字串小於比較字串";
} else {
echo "主字串大於比較字串";
}
// 輸出:主字串與比較字串相等
$main_str = "Hello World";
$str = "world";
$offset = -5;
$length = 5;
$result = substr_compare($main_str, $str, $offset, $length, true);
if ($result === 0) {
echo "主字串與比較字串相等";
} elseif ($result < 0) {
echo "主字串小於比較字串";
} else {
echo "主字串大於比較字串";
}
// 輸出:主字串大於比較字串
注意事項:
- 比較時,如果主字串的長度小於 $offset + $length,則會自動調整為可用的長度進行比較。
- 如果指定的 $offset 或 $length 為負數,且其絕對值大於主字串的長度,則會返回false。
- 如果設定 $case_insensitivity 為true,則進行大小寫不敏感的比較。
- 在PHP 7中,如果主字串和比較字串都不是字串型別,會丟擲一個E_WARNING錯誤,返回false。在PHP 5中,會將非字串型別的引數轉換為字串進行比較。