4.3.3 Integer

Casting-Operator (int)
Überprüfung mit is_int()

Im Allgemeinen umfassen Integer den Wertebereich von -2147483648 bis 2147483647, allerdings können auch hexadezimale Zahlen oder Oktalwerte ausgegeben werden. Zahlen, die mit einer 0x beginnen, werden so automatisch in eine hexadezimale Zahl umgerechnet. Zahlen, die mit einer 0 beginnen, werden so automatisch in einen Oktalwert umgerechnet.

1
2
3
4
5
6
7
$normal = (int) 42;
$hexa   = (int) 0x11;
$octal1 = (int) 042;

echo "Normaler Integer: $normal <br>";
echo "Hex: $hexa <br>";
echo "Oktal#1: $octal1 <br>";

Ausgabe:
Normaler Integer: 42
Hex: 17
Oktal#1: 34

Wenn wir im obigen Beispiel $octal1 = 0815; schreiben würden, dann würde dies eine Fehlermeldung Parse error: Invalid numeric literal... erzeugen, da die Ziffer 8 im oktalen Zahlensystem nicht existiert.

Übung

Um eine Eingabe daraufhin zu überprüfen, ob es sich um den Typen Integer handelt, geht man wie im folgenden Code-Beispiel vor. Schreiben Sie zu jeder Zeile, ob die Lösung true oder false ist:

A) var_dump(is_int(7));
B) var_dump(is_int(7.8));
C) var_dump(is_int('7'));
D) var_dump(is_int('7.8'));
E) var_dump(is_int(1995e0));
F) var_dump(is_int('0x18'));
G) var_dump(is_int(0x18));
H) var_dump(is_int('echo'));
I) var_dump(is_int(-224));

Lösung zur Aufgabe

A) var_dump(is_int(7)); // Ausgabe: bool(true)
B) var_dump(is_int(7.8)); // Ausgabe: bool(false)
C) var_dump(is_int('7')); // Ausgabe: bool(false)
D) var_dump(is_int('7.8')); // Ausgabe: bool(false)
E) var_dump(is_int(1995e0)); // Ausgabe: bool(fales)
F) var_dump(is_int('0x18')); // Ausgabe: bool(false)
G) var_dump(is_int(0x18)); // Ausgabe: bool(true)
H) var_dump(is_int('echo')); // Ausgabe: bool(false)
I) var_dump(is_int(-224)); // Ausgabe: bool(true)

Hinweis

Telefonnummern oder Postleitzahlen sollte man einer Variable als Typ String zuweisen, da diese oft mit einer 0 beginnen und ansonsten der Oktalwert oder eine Fehlermeldung (wie oben beschrieben) ausgegeben wird.