W3docs

is_real()

Die Funktion is_real() in PHP 7 prüft, ob eine Variable ein Float ist. Sie ist ein veralteter Alias für is_float().

Einführung

is_real() ist ein Alias von is_float(). Beide prüfen, ob eine Variable einen Gleitkommazahl-Wert enthält (PHP verwendet einen einzigen float-Typ — „real" und „double" sind nur andere Bezeichnungen für dasselbe). Die Funktion gibt einen boolean zurück: true für Floats, false für alles andere.

Der Name stammt vom mathematischen Begriff reelle Zahl. Da PHP bereits das klarere, standardisiertere is_float() besitzt, wurde der Alias is_real() in PHP 7.4 als veraltet markiert und in PHP 8.0 vollständig entfernt. Auf einer modernen PHP-Installation führt der Aufruf von is_real() zu einem fatalen Fehler: Error: Call to undefined function.

Diese Seite soll helfen, Legacy-Code zu verstehen, der noch is_real() verwendet — in neuem Code sollte jedoch immer is_float() genutzt werden.

Syntax

is_real(mixed $value): bool
  • $value — die zu prüfende Variable.
  • Rückgabetrue, wenn $value vom Typ float ist, andernfalls false.

Hinweis: Diese Funktion prüft nur den Typ. Ein numerischer string wie "3.14" ist ein string und kein float, daher wird false zurückgegeben. Um auch numerische Strings zu akzeptieren, verwende is_numeric().

Beispiel: Verhalten von 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 ist ein Float, obwohl sein Wert eine ganze Zahl ist — daher besteht es die Prüfung. Die ganze Zahl 5 und der string "3.14" schlagen beide fehl, weil is_real() den zugrunde liegenden Typ prüft, nicht den Wert.

Beim direkten Ausgeben des Ergebnisses ist Vorsicht geboten: echo wandelt true in "1" und false in einen leeren string um, was so aussehen kann, als ob nichts passiert wäre. Verwende var_dump() beim Debuggen, um true/false klar zu erkennen.

Das moderne Äquivalent

Das Ersetzen von is_real() ist ein Eins-zu-eins-Austausch — der Aufruf wird einfach umbenannt:

<?php
$price = 19.99;

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

Wenn Code gewartet wird, der auf PHP 8 laufen muss, aber noch is_real() referenziert, ist folgender sicherer Shim geeignet:

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

Verwandte Typprüfungsfunktionen

PHP enthält eine Familie von is_*-Funktionen für Laufzeit-Typprüfungen:

Fazit

is_real() war ein Alias für is_float() und ist seit PHP 8.0 nicht mehr verfügbar. Es prüft, ob ein Wert vom Typ float ist, und gibt true oder false zurück. In neuem Code sollte immer direkt is_float() aufgerufen werden; is_numeric() ist die richtige Wahl, wenn auch numerische strings berücksichtigt werden sollen.

Übungen

Übung
Was macht die Funktion is_real() in PHP?
Was macht die Funktion is_real() in PHP?
Was this page helpful?