PHP - strcmp
Třída
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ázev | Datový typ | Výchozí hodnota | Popis |
---|---|---|---|
$str1 | string | První řetězec k porovnání. | |
$str2 | string | 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