W3docs

is_integer()

Die Funktion is_integer() ist ein Alias von is_int() in PHP und prüft, ob eine Variable ein Integer ist. Erfahren Sie mehr über Anwendung und Besonderheiten.

Einführung

is_integer() ist ein Alias von is_int() in PHP. Es prüft, ob der Typ einer Variable integer ist, und gibt einen boolean zurück. Ein Integer in PHP ist eine ganze Zahl ohne Nachkommastellen, wie z. B. -5, 0 oder 42.

Diese Seite beschreibt, was is_integer() prüft (und was es bewusst nicht prüft), die Fallstricke bei numerischen Strings und welchen Namen Sie in neuem Code tatsächlich verwenden sollten.

Verwenden Sie stattdessen is_int(). is_integer() und is_int() sind dieselbe Funktion, daher ist keine von beiden entfernt oder veraltet. Allerdings ist is_int() der kanonische Name, der im PHP-Handbuch und in modernen Codebasen durchgängig verwendet wird. Bevorzugen Sie ihn für Konsistenz.

Syntax

is_integer(mixed $value): bool

Die Funktion nimmt ein Argument entgegen, $value, die zu prüfende Variable, und gibt true nur zurück, wenn $value vom Typ int ist, und false für jeden anderen Typ.

Anwendungsbeispiel

php— editable, runs on the server

$var1 enthält den Integer 42, daher gibt der Aufruf true zurück, was echo als 1 ausgibt. $var2 ist ein String, daher gibt der Aufruf false zurück, was echo als nichts (einen leeren String) ausgibt. Um die booleschen Werte deutlich zu sehen, verwenden Sie var_dump() anstelle von echo.

Es prüft den Typ, nicht den Wert

Dies ist die häufigste Quelle von Verwirrung: is_integer() betrachtet den Typ der Variable. Daher ist ein String wie "42" oder ein Float wie 42.0 kein Integer, auch wenn er wie einer aussieht.

<?php
var_dump(is_integer(42));        // bool(true)
var_dump(is_integer("42"));      // bool(false) — numeric string, not int
var_dump(is_integer(42.0));      // bool(false) — float, not int
var_dump(is_integer(true));      // bool(false) — bool, not int
var_dump(is_integer(null));      // bool(false)
var_dump(is_integer(PHP_INT_MAX)); // bool(true)
?>

Wenn Sie numerische Strings akzeptieren müssen (z. B. Werte aus $_GET, $_POST oder einer CSV-Datei), verwenden Sie is_numeric() oder führen Sie eine Konvertierung/Validierung mit intval() durch.

Wann sollte ich das verwenden?

  • Absichern eines Funktionsarguments, bevor Sie ganzzahlige Berechnungen durchführen, z. B. einen Wert als Array-Index oder Schleifengrenze verwenden.
  • Unterscheiden von Typen nach einer Funktion, die gemischte Typen zurückgeben kann (ein gängiges Muster bei strpos(), das entweder einen int-Offset oder false zurückgibt):
<?php
$pos = strpos("hello world", "world");
if (is_integer($pos)) {
    echo "Found at index $pos\n"; // Found at index 6
} else {
    echo "Not found\n";
}
?>

Verwandte Typprüfungsfunktionen

FunktionGibt true zurück für
is_int()Ein int (kanonischer Name; identisch mit is_integer())
is_float()Ein float (z. B. 3.14, 42.0)
is_string()Einen string, einschließlich "42"
is_numeric()Einen int, float oder numerischen string
gettype()(gibt den Typnamen zurück, keinen bool)

Lesen Sie das Kapitel PHP-Datentypen für einen vollständigen Überblick darüber, wie PHP Werte kategorisiert.

Fazit

is_integer() ist ein Alias von is_int(), der true nur zurückgibt, wenn eine Variable vom Typ int ist. Denken Sie daran, dass es den Typ und nicht den Wert prüft, sodass numerische Strings und Floats false zurückgeben. Bevorzugen Sie für neuen Code den kanonischen is_int(); greifen Sie auf is_numeric() zurück, wenn numerische Strings ebenfalls zählen sollen.

Übungen

Übung
Wie können Sie in PHP prüfen, ob eine Variable einen Integer-Wert enthält?
Wie können Sie in PHP prüfen, ob eine Variable einen Integer-Wert enthält?
Was this page helpful?