substr_compare
تابع substr_compare برای مقایسه زیررشته با substr_compare به کار می رود. یعنی دو رشته را از یک جای مشخص مقایسه می کند. مثل مقایسه دو برگه از خط پنجم به بعد.
تعریف کوتاه
تابع substr_compare() دو رشته را از موقعیت شروع startpos مقایسه می کند. می توانی طول مقایسه را با length بدهی. همچنین با پارامتر case حساسیت به حروف را تنظیم کن.
سینتکس
substr_compare(string $string1, string $string2, int $startpos, ?int $length = null, bool $case = false): int|false
مثال 1 — دو رشته برابر
<?php
echo substr_compare("Hello world", "Hello world", 0);
?>
مثال 2 — شروع از موقعیت ششم
از کاراکتر ششم رشته اول با رشته دوم مقایسه می شود.
<?php
echo substr_compare("Hello world", "world", 6);
?>
مثال 3 — همه پارامترها
طول مقایسه و حساسیت حروف را نیز مشخص می کنیم.
<?php
echo substr_compare("world", "or", 1, 2);
echo substr_compare("world", "ld", -2, 2);
echo substr_compare("world", "orl", 1, 2);
echo substr_compare("world", "OR", 1, 2, true);
echo substr_compare("world", "or", 1, 3);
echo substr_compare("world", "rl", 1, 2);
?>
مثال 4 — مقادیر بازگشتی
خروجی 0 یعنی برابر؛ کمتر از 0 یعنی کوچکتر؛ بیشتر از 0 یعنی بزرگتر.
<?php
echo substr_compare("Hello world!", "Hello world!", 0);
echo substr_compare("Hello world!", "Hello", 0);
echo substr_compare("Hello world!", "Hello world! Hello!", 0);
?>
رفتار و نکات
نکته: startpos منفی از انتهای رشته می شمارد.
نکته: مقدار case=false پیش فرض است و مقایسه حساس به حروف است.
نکته: اگر case=true بدهی، مقایسه غیرحساس به حروف می شود.
هشدار: اگر length برابر یا بزرگ تر از طول string1 باشد، false برمی گردد.
برای مرور برش رشته نگاه کن: برش رشته با substr. همچنین مقایسه ساده رشته را ببین: تبدیل حروف به بزرگ (strtoupper). برای جستجو از این صفحه استفاده کن: مقایسه زیررشته با substr_compare.
گام های عملی
- دو رشته را مشخص کن.
- جای شروع را با
startposتعیین کن. - در صورت نیاز،
lengthوcaseرا بده.
جمع بندی سریع
- 0 یعنی برابر؛ منفی یعنی کوچک تر؛ مثبت یعنی بزرگ تر.
- می توانی از انتها هم شروع کنی.
- طول زیاد می تواند
falseدهد. - حساسیت به حروف قابل تنظیم است.