strcoll
تابع strcoll برای مقایسه رشته بر اساس locale است. Locale یعنی قوانین زبان/منطقه برای مرتب سازی. این تابع حساس به حروف است و نتیجه می تواند 0، منفی یا مثبت باشد.
تعریف و کاربرد
تابع strcoll(string1, string2) دو رشته (String) را با توجه به تنظیمات locale مقایسه می کند. بنابراین، ترتیب حروف می تواند با تغییر locale عوض شود.
نکات مهم
- مقایسه به locale وابسته است؛ مثلاً A<a یا A>a.
- تابع حساس به حروف است؛ اما binary-safe نیست.
- اگر locale روی
CیاPOSIXباشد، مثل strcmp عمل می کند.
سینتکس
strcoll(string1, string2)
مقدار بازگشتی
- 0: دو رشته برابرند.
- <0: string1 از string2 کوچک تر است.
- >0: string1 از string2 بزرگ تر است.
مثال: تاثیر locale در مقایسه
<?php
setlocale(LC_COLLATE, 'NL');
echo strcoll("Hello World!", "Hello World!");
echo "<br>";
setlocale(LC_COLLATE, 'en_US');
echo strcoll("Hello World!", "Hello World!");
?>
گام های عملی سریع
- locale مناسب را با
setlocaleتنظیم کن. - strcoll را برای دو رشته صدا بزن.
- خروجی 0، منفی یا مثبت را تفسیر کن.
نکته: اگر فقط مقایسه ساده می خواهی، از strcmp استفاده کن.
جمع بندی سریع
- strcoll به locale وابسته است.
- حساس به حروف است.
- در locale های C/POSIX مثل strcmp است.
- نتیجه 0، منفی یا مثبت می شود.