(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
ctype_digit — Verifica se os caracteres são numéricos
Verifica se todos os caracteres na string fornecida, text
, são numéricos.
text
A string a ser testada.
Nota:
Se um int entre -128 e 255 inclusive for fornecido, ele será interpretado como o valor ASCII de um único caractere (valores negativos são somados a 256 para permitir caracteres no intervalo ASCII estendido). Qualquer outro inteiro será interpretado como uma string contendo os dígitos decimais do inteiro.
A partir do PHP 8.1.0, passar um argumento que não seja string tornou-se defasado. No futuro, o argumento será interpretado como uma string em vez de um ponto de código ASCII. Dependendo do comportamento esperado, o argumento deve ser convertido para string ou uma chamada explícita para chr() deve ser feita.
Retorna true
se todos caracteres na string text
são dígitos decimais, false
caso contrário. Quando chamada com uma string vazia, o resultado sempre será false
.
Exemplo #1 Um exemplo de ctype_digit()
<?php
$strings = array('1820.20', '10002', 'wsl!12');
foreach ($strings as $caso_de_teste) {
if (ctype_digit($caso_de_teste)) {
echo "A string $caso_de_teste consiste inteiramente de dígitos.\n";
} else {
echo "A string $caso_de_teste não consiste inteiramente de dígitos.\n";
}
}
?>
O exemplo acima produzirá:
A string 1820.20 não consiste inteiramente de dígitos. A string 10002 consiste inteiramente de dígitos. A string wsl!12 não consiste inteiramente de dígitos.
Exemplo #2 Um exemplo de ctype_digit() comparando strings com inteiros
<?php
$string_numerica = '42';
$inteiro = 42;
ctype_digit($string_numerica); // verdadeiro
ctype_digit($inteiro); // false (código ASCII 42 é o caractere *)
is_numeric($string_numerica); // verdadeiro
is_numeric($inteiro); // verdadeiro
?>