strcasecmp

funkcja

Porównuje dwa ciągi znaków bez uwzględnienia wielkości liter (ASCII). Zwraca 0 gdy są równe, wartość ujemną lub dodatnią gdy różne.

strcasecmp(string $string1, string $string2): int

strcasecmp działa jak strcmp, ale ignoruje wielkość liter w zakresie ASCII — czyli 'PHP', 'php' i 'Php' są dla niej równoważne. Zwraca:

  • 0 — ciągi są równe (bez względu na wielkość liter),
  • wartość ujemną lub dodatnią — ciągi się różnią.

Uwaga: funkcja nie obsługuje pełnego Unicode. Dla polskich znaków nie rozróżnia 'ą' od 'Ą' — jeśli chcesz porównania niezależnego od wielkości liter z pełną obsługą UTF-8, użyj mb_strtolower na obu ciągach, a następnie zwykłego strcmp.

<?php
declare(strict_types=1);

echo strcasecmp('PHP', 'php');     // wynik: 0
echo strcasecmp('Hello', 'HELLO'); // wynik: 0
echo strcasecmp('admin', 'Admin'); // wynik: 0
echo strcasecmp('alfa', 'beta');   // wynik: ujemna (a < b)

// Porównanie nazwy użytkownika niezależnie od wielkości liter
$podana = 'Jan.Kowalski';
$zapisana = 'jan.kowalski';
if (strcasecmp($podana, $zapisana) === 0) {
    echo 'Nazwy użytkowników są zgodne.';
}
📘 Naucz się w lekcji →