PHP Conference Japan 2024

Collator::compare

collator_compare

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

Collator::compare -- collator_compare比較兩個 Unicode 字串

說明

物件導向風格

public Collator::compare(字串 $string1, 字串 $string2): 整數|false

程序式風格

collator_compare(Collator $object, 字串 $string1, 字串 $string2): 整數|false

根據排序規則比較兩個 Unicode 字串。

參數

object

Collator 物件。

string1

要比較的第一个字串。

string2

要比較的第二个字串。

傳回值

傳回比較結果

  • 如果 string1 大於 string2,則傳回 1;

  • 如果 string1 等於 string2,則傳回 0;

  • 如果 string1 小於 string2,則傳回 -1。

失敗時傳回 false

警告

此函式可能傳回布林值 false,但也可能傳回評估為 false 的非布林值。請閱讀 布林值 的章節以了解更多資訊。請使用 === 運算子 測試此函式的傳回值。

範例

範例 #1 collator_compare() 範例

<?php
$s1
= 'Hello';
$s2 = 'hello';

$coll = collator_create( 'en_US' );
$res = collator_compare( $coll, $s1, $s2 );

if (
$res === false) {
echo
collator_get_error_message( $coll );
} else if(
$res > 0 ) {
echo
"s1 大於 s2\n";
} else if(
$res < 0 ) {
echo
"s1 小於 s2\n";
} else {
echo
"s1 等於 s2\n";
}
?>

以上範例將輸出:


s1 大於 s2

範例 #2 比較不區分變音符號或大小寫的字串

<?php
$c
= new Collator( 'en' );
$c->setStrength( Collator::PRIMARY );

if (
$c->compare( 'Séan', 'Sean' ) == 0 )
{
echo
"The same\n";
}

以上範例將輸出:


The same

這個範例指示校對器僅考慮基本字元進行比較。 Collator->setStrength() 的文件說明了不同的強度。

另請參閱

新增註釋

使用者貢獻的註釋 1 則註釋

3
erik at eldata dot se
3 年前
Collator 類別及其 compare 方法的功能類似於不存在的 mb_strcmp、mb_strcasecmp、mb_strnatcmp 和 mb_strnatcasecmp 對於多位元組字串 (UTF8) 的作用 - 但更好! :-)

對於「大小寫」:由於 Collator::CASE_FIRST 預設為 Collator::OFF,因此 Collator 不區分大小寫,但可以使用 setAttribute 方法更改。

對於「nat」(數字的自然排序順序):使用 setAttribute 方法,並將 Collator::NUMERIC_COLLATION 和 Collator:ON 設為啟用。
To Top