is_real()
La fonction is_real() en PHP vérifie si une variable est un float. Elle est un alias déprécié de is_float(), supprimé en PHP 8.0.
Introduction
is_real() est un alias de is_float(). Toutes deux vérifient si une variable contient une valeur en virgule flottante (PHP utilise un seul type float — « real » et « double » sont simplement d'autres noms pour la même chose). La fonction retourne un booléen : true pour les floats, false pour tout le reste.
Le nom vient du terme mathématique nombre réel. Étant donné que PHP dispose déjà du is_float() plus clair et plus standard, l'alias is_real() a été déprécié en PHP 7.4 et entièrement supprimé en PHP 8.0. Sur une installation PHP moderne, appeler is_real() génère une erreur fatale Error: Call to undefined function.
Cette page existe pour vous aider à comprendre le code hérité qui l'utilise encore — mais dans tout ce que vous écrivez aujourd'hui, utilisez is_float().
Syntaxe
is_real(mixed $value): bool$value— la variable à tester.- Retourne —
truesi$valueest de typefloat, sinonfalse.
Remarque : cette fonction ne teste que le type. Une chaîne numérique telle que "3.14" est un string, pas un float, donc elle retourne false. Pour accepter également les chaînes numériques, utilisez is_numeric().
Exemple : comportement de 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 est un float même si sa valeur est un nombre entier, il passe donc le test. L'entier 5 et la chaîne "3.14" échouent tous les deux, car is_real() vérifie le type sous-jacent, pas la valeur.
Soyez prudent lorsque vous affichez le résultat directement : echo transforme true en "1" et false en chaîne vide, ce qui peut donner l'impression que rien ne s'est passé. Utilisez var_dump() lors du débogage pour voir clairement true/false.
L'équivalent moderne
Remplacer is_real() est un simple remplacement — il suffit de renommer l'appel :
<?php
$price = 19.99;
if (is_float($price)) {
echo "It's a float.";
} else {
echo "Not a float.";
}
// Output: It's a float.
?>Si vous maintenez du code qui doit fonctionner sous PHP 8 mais qui référence encore is_real(), un shim sûr est :
<?php
if (!function_exists('is_real')) {
function is_real($value): bool {
return is_float($value);
}
}
?>Fonctions de vérification de type associées
PHP fournit une famille de fonctions is_* pour les vérifications de type à l'exécution :
is_float()— le nom actuel ; utilisez-le à la place deis_real().is_int()— teste les entiers.is_string()— teste les chaînes.is_numeric()—truepour les nombres et les chaînes numériques.gettype()— retourne le nom du type sous forme de chaîne.
Conclusion
is_real() était un alias de is_float() et n'est plus disponible depuis PHP 8.0. Elle vérifie si une valeur est de type float, retournant true ou false. Dans le nouveau code, appelez toujours is_float() directement ; utilisez is_numeric() si les chaînes numériques doivent également être acceptées.