ctype_digit
ctype_digit($text)
Vrátí true, když text obsahuje jen číslice 0–9 a není prázdný. Znaménko, desetinná tečka ani mezery neprojdou.
Parametry
- $text – zkoumaný text.
Příklady
var_dump(ctype_digit("2026")); // bool(true)
var_dump(ctype_digit("-5")); // bool(false)
var_dump(ctype_digit("3.14")); // bool(false)
var_dump(ctype_digit("")); // bool(false)
// ID z adresy: jen kladné celé číslo
$id = "15";
if (ctype_digit($id)) {
echo (int) $id + 1; // 16
}
// PSČ bez mezery
$psc = str_replace(" ", "", "674 01");
var_dump(strlen($psc) === 5 && ctype_digit($psc)); // bool(true)
// číslo místo textu: převeďte ho na text
var_dump(ctype_digit((string) 42)); // bool(true)
Na co si dát pozor
- Předávejte vždy text. Celé číslo −128 až 255 bere funkce jako kód znaku (ctype_digit(53) je true, protože 53 je „5“), ostatní čísla jako text. Od PHP 8.1 je předání čísla zastaralé.
- Prázdný text vrací false, ale "0" true. Rozsah hodnoty (třeba ID větší než 0) ověřte zvlášť.
- Pro celé číslo včetně záporných a s rozsahem je vhodnější filter_var($x, FILTER_VALIDATE_INT).
- Velmi dlouhý řetězec číslic projde, i když se nevejde do celého čísla PHP.
Příbuzné funkce:
ctype_alnum()
is_numeric()
filter_var()