(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_digit — Vérifie qu'une chaîne est un entier
ctype_digit() vérifie si tous les caractères
de la chaîne text
sont des chiffres.
text
La chaîne testée.
Note:
Si un entier dans l'intervalle -128 et 255 inclus est fourni, il sera interprété comme la valeur ASCII d'un seul caractère (les valeurs négatives se verront ajouter 256 afin d'autoriser les caractères dans l'intervalle ASCII étendue). Tout autre entier sera interprété comme une chaîne de caractères contenant les décimales de l'entier.
À partir de PHP 8.1.0, passer un argument différent d'une chaîne est obsolète. À l'avenir, l'argument sera interprété comme une chaîne de caractères au lieu d'un point de code ASCII. Selon le comportement souhaité, l'argument doit être transtypé en chaîne de caractères ou un appel explicite à chr() doit être effectué.
Retourne true
si tous les caractères de text
sont
des chiffres décimaux, false
sinon.
Lorsque appelé avec une chaîne vide, le résultat sera toujours false
.
Exemple #1 Exemple avec ctype_digit()
<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $testcase) {
if (ctype_digit($testcase)) {
echo "La chaîne $testcase ne contient que des entiers.\n";
} else {
echo "La chaîne $testcase ne contient pas que des entiers.\n";
}
}
?>
L'exemple ci-dessus va afficher :
La chaîne 1820.20 ne contient pas que des entiers. La chaîne 10002 ne contient que des entiers. La chaîne wsl!12 ne contient pas que des entiers.
Exemple #2 Exemple avec ctype_digit() pour comparer des chaînes et des nombres
<?php
$numeric_string = '42';
$integer = 42;
ctype_digit($numeric_string); // true
ctype_digit($integer); // false (ASCII 42 correspond au caractère *)
is_numeric($numeric_string); // true
is_numeric($integer); // true
?>