is_real()
La funzione is_real() in PHP verifica se una variabile è un float. È un alias deprecato di is_float(), rimossa in PHP 8.0.
Introduzione
is_real() è un alias di is_float(). Entrambe verificano se una variabile contiene un valore in virgola mobile (PHP usa un unico tipo float — "real" e "double" sono solo altri nomi per la stessa cosa). La funzione restituisce un boolean: true per i float, false per tutto il resto.
Il nome deriva dal termine matematico numero reale. Poiché PHP dispone già del più chiaro e standard is_float(), l'alias is_real() è stato deprecato in PHP 7.4 e rimosso completamente in PHP 8.0. In un'installazione moderna di PHP, chiamare is_real() genera un errore fatale Error: Call to undefined function.
Questa pagina esiste per aiutarti a comprendere il codice legacy che lo utilizza ancora — ma in qualsiasi cosa tu scriva oggi, usa is_float().
Sintassi
is_real(mixed $value): bool$value— la variabile da testare.- Restituisce —
truese$valueè di tipofloat, altrimentifalse.
Nota: questa funzione verifica solo il tipo. Una stringa numerica come "3.14" è una string, non un float, quindi restituisce false. Per accettare anche le stringhe numeriche, usa is_numeric().
Esempio: come si 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 è un float anche se il suo valore è un numero intero, quindi viene accettato. L'intero 5 e la stringa "3.14" falliscono entrambi, perché is_real() controlla il tipo sottostante, non il valore.
Fai attenzione quando stampi il risultato direttamente: echo converte true in "1" e false in una stringa vuota, il che può sembrare che non sia successo nulla. Usa var_dump() durante il debug per vedere chiaramente true/false.
L'equivalente moderno
Sostituire is_real() è uno scambio uno a uno — basta rinominare la chiamata:
<?php
$price = 19.99;
if (is_float($price)) {
echo "It's a float.";
} else {
echo "Not a float.";
}
// Output: It's a float.
?>Se mantieni codice che deve girare su PHP 8 ma fa ancora riferimento a is_real(), uno shim sicuro è:
<?php
if (!function_exists('is_real')) {
function is_real($value): bool {
return is_float($value);
}
}
?>Funzioni correlate per la verifica dei tipi
PHP include una famiglia di funzioni is_* per i controlli di tipo a runtime:
is_float()— il nome attuale; usa questo invece diis_real().is_int()— verifica gli interi.is_string()— verifica le stringhe.is_numeric()—trueper i numeri e le stringhe numeriche.gettype()— restituisce il nome del tipo come stringa.
Conclusione
is_real() era un alias di is_float() e non è più disponibile a partire da PHP 8.0. Verifica se un valore è di tipo float, restituendo true o false. Nel nuovo codice chiama sempre direttamente is_float(); ricorri a is_numeric() se anche le stringhe numeriche devono essere accettate.