W3docs

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.
  • Retornatrue se $value for do tipo float, caso contrário false.

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:

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.

Prática

Prática
O que a função is_real() no PHP faz?
O que a função is_real() no PHP faz?
Was this page helpful?