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.- Devuelve —
truesi$valuees de tipofloat, de lo contrariofalse.
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 deis_real().is_int()— comprueba si es un entero.is_string()— comprueba si es una cadena.is_numeric()—truepara 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.