Úvod >PHP >PHP manuál - funkce >ctype_digit

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()