CakeFest 2024: The Official CakePHP Conference

Collator::compare

collator_compare

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

Collator::compare -- collator_compareİki Evrenkodlu dizgeyi karşılaştırır

Açıklama

Nesne yönelimli kullanım

public Collator::compare(string $dizge1, string $dizge2): int|false

Yordamsal kullanım

collator_compare(Collator $nesne, string $dizge1, string $dizge2): int|false

İki Unicode dizgeyi yerelin karşılaştırma kurallarına uygun olarak karşılaştırır.

Bağımsız Değişkenler

nesne

Collator nesnesi.

dizge1

Karşılaştırılacak dizgelerden biri.

dizge2

Karşılaştırılacak dizgelerden biri.

Dönen Değerler

Dönen karşılaştırma sonuçları:

  • dizge1, dizge2'den büyükse: 1

  • dizge1 ve dizge2 aynıysa: 0

  • dizge1, dizge2'den küçükse: 2

Hata oluşmuşsa false döner.

Uyarı

Bu işlev mantıksal false değeriyle dönebileceği gibi false olarak değerlendirilebilecek mantıksal olmayan bir değerle de dönebilir. Bu konuda daha fazla bilgi Mantıksal Değerler bölümünde bulunabilir. Bu işlevden dönen değeri sınamak için === işleci kullanılabilir.

Örnekler

Örnek 1 - collator_compare() örneği

<?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'den büyüktür\n";
} else if(
$res < 0 ) {
echo
"s1, s2'den küçüktür\n";
} else {
echo
"s1 ve s2 aynıdır\n";
}
?>

Yukarıdaki örneğin çıktısı:


s1, s2'den büyüktür

Örnek 2 - Aksansız veya büyük/küçük harfe duyarlı olmayan dizeleri karşılaştırma

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

if (
$c->compare('Séan', 'Sean') == 0)
{
echo
"İkisi aynı\n";
}

Yukarıdaki örneğin çıktısı:


İkisi aynı

Bu örnek, karşlaştırıcıya yalnızca temel karakterleri hesaba katarak karşılaştırma yapması talimatını verir. Karşılaştırma seviyeleri Collator->setStrength() belgesinde açıklanmıştır.

Ayrıca Bakınız

  • collator_sort() - Belirtilen karşılaştırıcıyı kullanarak diziyi sıralar

add a note

User Contributed Notes 1 note

up
3
erik at eldata dot se
3 years ago
The Collator class with method compare does what the non existing mb_strcmp, mb_strcasecmp, mb_strnatcmp and mb_strnatcasecmp would do for multibyte strings (UTF8) - but better! :-)

For "case": the Collator is case insensitive due to Collator::CASE_FIRST defaults to Collator::OFF, but can be changed with method setAttribute.

For "nat" (natural sort order for numbers): use method setAttribute with Collator::NUMERIC_COLLATION and Collator:ON to enable.
To Top