is_real()
A função is_real() no PHP 7 verifica se uma variável é float ou double. É um alias obsoleto de is_float(), que realiza a mesma verificação.
Introdução
is_real() é um alias de is_float(). Ambas verificam se uma variável contém um valor de ponto flutuante (o PHP usa um único tipo float — "real" e "double" são apenas outros nomes para a mesma coisa). A função retorna um boolean: true para floats, false para todo o resto.
O nome vem do termo matemático número real. Como o PHP já possui o is_float() mais claro e padronizado, o alias is_real() foi descontinuado no PHP 7.4 e removido completamente no PHP 8.0. Em uma instalação moderna do PHP, chamar is_real() gera um Error fatal: Call to undefined function.
Esta página existe para que você entenda código legado que ainda o utiliza — mas em qualquer código que você escreva hoje, use is_float().
Sintaxe
is_real(mixed $value): bool$value— a variável a ser testada.- Retorna —
truese$valuefor do tipofloat, caso contráriofalse.
Observação: esta função apenas testa o tipo. Uma string numérica como "3.14" é uma string, não um float, portanto retorna false. Para aceitar strings numéricas também, use is_numeric().
Exemplo: como is_real() se comporta
<?php
$float = 3.14;
$whole = 2.0; // still a float, despite the round value
$integer = 5;
$text = "3.14"; // a numeric string, not a float
var_dump(is_real($float)); // bool(true)
var_dump(is_real($whole)); // bool(true)
var_dump(is_real($integer)); // bool(false) — this is an int
var_dump(is_real($text)); // bool(false) — this is a string
?>2.0 é um float mesmo que seu valor seja um número inteiro, portanto passa na verificação. O inteiro 5 e a string "3.14" falham, porque is_real() verifica o tipo subjacente, não o valor.
Tenha cuidado ao imprimir o resultado diretamente: echo converte true em "1" e false em uma string vazia, o que pode parecer que nada aconteceu. Use var_dump() durante a depuração para ver true/false claramente.
O equivalente moderno
Substituir is_real() é uma troca direta — basta renomear a chamada:
<?php
$price = 19.99;
if (is_float($price)) {
echo "It's a float.";
} else {
echo "Not a float.";
}
// Output: It's a float.
?>Se você mantém código que precisa rodar no PHP 8 mas ainda referencia is_real(), um shim seguro é:
<?php
if (!function_exists('is_real')) {
function is_real($value): bool {
return is_float($value);
}
}
?>Funções de verificação de tipo relacionadas
O PHP possui uma família de funções is_* para verificações de tipo em tempo de execução:
is_float()— o nome atual; use este em vez deis_real().is_int()— testa integers.is_string()— testa strings.is_numeric()—truepara números e strings numéricas.gettype()— retorna o nome do tipo como uma string.
Conclusão
is_real() era um alias de is_float() e não está mais disponível a partir do PHP 8.0. Ela verifica se um valor é do tipo float, retornando true ou false. Em código novo, sempre chame is_float() diretamente; recorra a is_numeric() se strings numéricas também devem ser aceitas.