W3docs

is_real()

La función is_real() en PHP 7 comprueba si una variable es un float o un double. Es un alias obsoleto de is_float(), que realiza la misma operación.

Introducción

is_real() es un alias de is_float(). Ambas comprueban si una variable contiene un valor de punto flotante (PHP usa un único tipo float — "real" y "double" son simplemente otros nombres para lo mismo). La función devuelve un booleano: true para floats y false para todo lo demás.

El nombre proviene del término matemático número real. Dado que PHP ya dispone del más claro y estándar is_float(), el alias is_real() fue declarado obsoleto en PHP 7.4 y eliminado por completo en PHP 8.0. En una instalación moderna de PHP, llamar a is_real() genera un error fatal Error: Call to undefined function.

Esta página existe para que puedas entender código heredado que todavía lo utiliza — pero en cualquier código que escribas hoy, usa is_float().

Sintaxis

is_real(mixed $value): bool
  • $value — la variable a comprobar.
  • Devuelvetrue si $value es de tipo float, de lo contrario false.

Nota: esta función solo comprueba el tipo. Una cadena numérica como "3.14" es un string, no un float, por lo que devuelve false. Para aceptar también cadenas numéricas, usa is_numeric().

Ejemplo: cómo se comporta is_real()

<?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 es un float aunque su valor sea un número entero, por lo que pasa la comprobación. El entero 5 y la cadena "3.14" fallan, porque is_real() comprueba el tipo subyacente, no el valor.

Ten cuidado al imprimir el resultado directamente: echo convierte true en "1" y false en una cadena vacía, lo que puede parecer que no ha ocurrido nada. Usa var_dump() al depurar para ver true/false con claridad.

El equivalente moderno

Reemplazar is_real() es un cambio uno a uno — simplemente renombra la llamada:

<?php
$price = 19.99;

if (is_float($price)) {
    echo "It's a float.";
} else {
    echo "Not a float.";
}
// Output: It's a float.
?>

Si mantienes código que debe ejecutarse en PHP 8 pero todavía hace referencia a is_real(), un shim seguro es:

<?php
if (!function_exists('is_real')) {
    function is_real($value): bool {
        return is_float($value);
    }
}
?>

Funciones relacionadas de comprobación de tipos

PHP incluye una familia de funciones is_* para comprobaciones de tipo en tiempo de ejecución:

  • is_float() — el nombre actual; úsalo en lugar de is_real().
  • is_int() — comprueba si es un entero.
  • is_string() — comprueba si es una cadena.
  • is_numeric()true para números y cadenas numéricas.
  • gettype() — devuelve el nombre del tipo como cadena.

Conclusión

is_real() era un alias de is_float() y ya no está disponible a partir de PHP 8.0. Comprueba si un valor es de tipo float, devolviendo true o false. En código nuevo llama siempre directamente a is_float(); recurre a is_numeric() si las cadenas numéricas también deben ser consideradas válidas.

Práctica

Práctica
¿Qué hace la función is_real() en PHP?
¿Qué hace la función is_real() en PHP?
Was this page helpful?