Ce face ctype_digit
ctype_digit returnează true doar dacă fiecare caracter este o cifră. Semnul minus, punctul zecimal sau spațiile fac rezultatul false. Un text gol dă tot false.
Este potrivită pentru coduri poștale, CNP-uri, coduri de verificare, ID-uri din URL. Funcția este gândită pentru texte: din PHP 8.1, dacă îi dai un număr întreg primești un mesaj Deprecated.
Parametri
| Parametru | Descriere |
|---|---|
$text |
Textul verificat. |
Ce returnează
true dacă textul nu este gol și are doar cifre, altfel false.
Exemple
Exemplul 1: Ce este acceptat
<?php
foreach (["700259", "12.5", "-3", "", "12 34", "0042"] as $text) {
echo var_export($text, true) . " => " . (ctype_digit($text) ? "doar cifre" : "nu") . "\n";
}
Rezultat
'700259' => doar cifre
'12.5' => nu
'-3' => nu
'' => nu
'12 34' => nu
'0042' => doar cifre
Exemplul 2: Validarea unui ID primit în URL
<?php
$_GET = ["id" => "15abc"];
$id = $_GET["id"] ?? "";
if (!ctype_digit($id)) {
echo "ID invalid";
} else {
echo "Afișez articolul " . (int) $id;
}
Rezultat
ID invalid
Greșeli frecvente
- Dai un număr întreg:
ctype_digit(5)verifică de fapt caracterul cu codul ASCII 5 și dăfalse, plus un mesajDeprecated. Convertește întâi la text:ctype_digit((string) $x). - Folosești
ctype_digitpentru prețuri sau numere negative. Pentru acestea foloseșteis_numericsaufilter_var.
Comenzi înrudite
ctype_alnum: Verifică dacă un text conține doar litere și cifre, fără spații sau alte semne.preg_match: Verifică dacă un text se potrivește cu o expresie regulată și extrage prima potrivire.ctype_alpha: Verifică dacă un text conține doar litere (a-z, A-Z).