W3docs

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.
  • Restituiscetrue se $value è di tipo float, altrimenti false.

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 di is_real().
  • is_int() — verifica gli interi.
  • is_string() — verifica le stringhe.
  • is_numeric()true per 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.

Pratica

Pratica
Cosa fa la funzione is_real() in PHP?
Cosa fa la funzione is_real() in PHP?
Was this page helpful?