NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

PHP - strcmp

Třída

Kořen \ Bez třídy

Metoda - strcmp

(PHP 4, PHP 5, PHP 7)

Funkce strcmp() porovnává dva textové řetězce podle abecedy. Funkce je tzv. "case sensitive" - záleží na velkých a malých písmenech. Funkce je binary safe.

Oba parametry musí být textové řetězce - v opačném případě může funkce vracet nesmyslné výsledky.

Procedurální

  • function strcmp (string $str1, string $str2) : int

Parametry

NázevDatový typVýchozí hodnotaPopis
$str1string

První řetězec k porovnání.

$str2string

Druhý řetězec k porovnání.

Návratové hodnoty

Vrací: int

Vrací 0, jestliže se oba textové řetězce rovnají. Pokud je první řetězec větší než ten druhý, vrací kladné číslo, v opačném případě vrací záporné číslo.

Výsledkem může být též null, pokud je jedním z parametrů objekt/pole.

Příklady

Zkusme si nejdříve porovnat textové řetězce a všimněte si rozdílu mezi velkými a malými písmeny:

<?php
var_dump(strcmp('ahoj světe', 'Ahoj Světe'));   // int(32)
var_dump(strcmp('Ahoj Světe', 'ahoj světe'));   // int(-32)
var_dump(strcmp('Ahoj Světe', 'Ahoj Světe'));   // int(0)
var_dump(strcmp('ahoj', 'ahoj světe'));         // int(-7)
var_dump(strcmp('ahoj světe', 'ahoj'));         // int(7)

Nyní zkusme do parametrů vložit i jiné hodnoty, než jsou textové řetězce:

<?php
var_dump(strcmp('Ahoj Světe', null));       // int(11)
var_dump(strcmp('Ahoj Světe', false));      // int(11)
var_dump(strcmp(false, 'Ahoj Světe'));      // int(-11)
var_dump(strcmp(array('ahoj', 'světe'), 'Ahoj Světe'));   // Vyvolá warning a vrátí NULL
var_dump(strcmp('Ahoj Světe', 0));          // int(17)
var_dump(strcmp(0, 'ahoj světe'));          // int(-49)
var_dump(strcmp(false, 0));                 // int(-1)
var_dump(strcmp(0, -1));                    // int(3)
var_dump(strcmp(0, 1));                     // int(-1)
var_dump(strcmp(300, 200));                 // int(1)

Můžeme vidět, že v některých případech jsou výsledky dosti zavádějící.

Nakonec se podívejme i na porovnávání textových řetězců s diakritikou, na které též záleží:

<?php
var_dump(strcmp('ahoj světe', 'ahoj svete'));   // int(95)
var_dump(strcmp('ahoj světe', 'ahoj světe'));   // int(0)

Související manuály

      • function preg_match (string $pattern, string $subject, array &$matches, int $flags = 0, int $offset = 0) : int
      • function strncmp (string $str1, string $str2, int $len) : int
      • function strstr (string $haystack, mixed $needle, bool $before_needle = false) : string
      • function substr (string $string, int $start, int $length) : string
      Aktivity