Start · Sprachen · PHP · Referenz · is_integer

is_integer

Funktion

Prüft, ob eine Variable vom Typ <code>int</code> ist. Alias von <code>is_int()</code>.

seit PHP 4.0.0 Kategorie: type

Signatur

is_integer(mixed $value): bool

Beschreibung

is_integer() ist ein Alias der Funktion is_int() und prüft, ob der übergebene Wert vom Datentyp int (Integer) ist. Die Funktion gibt true zurück, wenn der Wert ein ganzzahliger Typ ist, andernfalls false.

Im Gegensatz zu einem einfachen Typvergleich mit == berücksichtigt is_integer() den tatsächlichen Datentyp und führt keine implizite Typumwandlung durch. So liefert is_integer("42") false, da es sich um einen String handelt, obwohl der Inhalt eine Ganzzahl darstellt.

Typischerweise wird is_integer() zur Eingabevalidierung eingesetzt, wenn sichergestellt werden muss, dass ein Wert wirklich eine Ganzzahl und kein numerischer String oder Float ist. Da es sich um einen Alias handelt, ist die Verwendung von is_int() oder is_long() gleichwertig – alle drei Varianten sind in PHP verfügbar.

Parameter

Name Typ Default Beschreibung
$value Pflicht mixed Der zu prüfende Wert. Kann jeden PHP-Datentyp haben.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn value vom Typ int ist, andernfalls false.

Beispiele

Grundlegende Typprüfung mit is_integer()

<?php
var_dump(is_integer(42));        // true  – Integer
var_dump(is_integer(-7));        // true  – negativer Integer
var_dump(is_integer(3.14));      // false – Float
var_dump(is_integer('42'));      // false – String
var_dump(is_integer(true));      // false – Boolean
var_dump(is_integer(null));      // false – null
bool(true) bool(true) bool(false) bool(false) bool(false) bool(false)

Eingabevalidierung einer Funktion

<?php
function verarbeiteAlter(mixed $alter): string {
    if (!is_integer($alter)) {
        return 'Fehler: Alter muss eine ganze Zahl sein.';
    }
    if ($alter < 0 || $alter > 150) {
        return 'Fehler: Alter außerhalb des gültigen Bereichs.';
    }
    return "Alter ist gültig: $alter Jahre.";
}

echo verarbeiteAlter(25) . PHP_EOL;    // gültig
echo verarbeiteAlter('25') . PHP_EOL;  // Fehler: String
echo verarbeiteAlter(25.5) . PHP_EOL;  // Fehler: Float
echo verarbeiteAlter(-1) . PHP_EOL;    // Fehler: Bereich
Alter ist gültig: 25 Jahre. Fehler: Alter muss eine ganze Zahl sein. Fehler: Alter muss eine ganze Zahl sein. Fehler: Alter außerhalb des gültigen Bereichs.

// Wichtig · Fallstricke

is_integer() ist ein Alias von is_int(), der seinerseits auch den Alias is_long() besitzt. Alle drei Funktionen verhalten sich identisch. Es empfiehlt sich aus Konsistenzgründen, im Projekt einheitlich eine Schreibweise zu verwenden – bevorzugt is_int(), da dieser Name am gebräuchlichsten ist.

Zu beachten: Numerische Strings wie "42" werden nicht als Integer erkannt. Soll geprüft werden, ob ein String eine gültige ganze Zahl enthält, eignet sich stattdessen ctype_digit() oder filter_var($wert, FILTER_VALIDATE_INT).