Ein Integer ist eine Nummer aus der Menge
Z = {..., -2, -1, 0, 1, 2, ...}.
Siehe auch:
Ganzzahlen beliebiger Länge und
Fließkomma-Zahlen
Ganzzahlen können in dezimaler (10-basierter), hexadezimaler
(16-basierter) oder oktaler (8-basierter) Schreibweise angegeben
werden, wahlweise mit einem vorangestellten Zeichen (- oder +).
Wenn Sie die oktale Schreibweise verwenden, müssen Sie die Zahl mit
einer vorangestellten Null 0 schreiben; in
hexadezimaler Schreibweise müssen Sie vor die Zahl ein
0x schreiben.
Beispiel 6-1. Integer Literale $a = 1234; // Dezimalzahl
$a = -123; // eine negative Zahl
$a = 0123; // Oktalzahl (entspricht 83 dezimal)
$a = 0x1A; // Hexadezimalzahl (entspricht 26 dezimal) |
|
Die Größe eines Integer-Wertes ist plattformabhängig, ein
Maximalwert von ungefähr zwei Milliarden ist jedoch üblich.
(Vorzeichenbehafteter 32-Bit-Wert). PHP unterstützt keine
vorzeichenlose Integer-Werte.
Wenn Sie eine Zahl jenseits der Grenzen des Typs Integer
angeben, wird diese stattdessen als Typ float interpretiert.
Wenn Sie eine Operation ausführen, deren Ergebnis eine Zahl
jenseits der Grenzen des Typs Integer ist, wird ebenso eine
Zahl vom Typ float zurückgegeben.
| Warnung |
Bedauerlicherweise gab es einen Bug in PHP, der die korrekte
Funktionsweise verhinderte, wenn negative Zahlen verwendet wurden.
Ein Beispiel: Bei der Ausführung von
-50000 * $million war das Ergebnis
-429496728. Sind beide Operanden positiv gibt
gibt es keine Probleme.
Dieses Problem ist in PHP 4.1.0 behoben.
|
In PHP gibt es keinen Operator für Integer Divisonen.
1/2 ergibt float
0.5.
Um einen Wert ausdrücklich nach integer zu konvertieren
benutzen Sie entweder die Umwandlung mittels
(int) oder (integer).
In den allermeisten Fällen ist es jedoch nicht notwendig die
Umwandlung selbst vorzunehmen. Ein Wert wird automatisch konvertiert,
falls ein Operator, eine Funktion oder eine Kontrollstruktur ein
integer Argument erfordert.
Siehe auch Typ-Veränderung.
FALSE ergibt
0 (Null), und TRUE
ergibt 1 (eins).
Bei der Umwandlung von float nach integer wird die Zahl
in Richtung Null gerundet.
Wenn der float jenseits der Grenzen von integer liegt
(üblicherweise +/- 2.15e+9 = 2^31),
ist das Ergebnis nicht definiert, weil float nicht genug
Präzision besitzt um ein genaues integer Ergebnis zu liefern.
Keine Warnung, nicht einmal eine Notiz wird in diesem Fall ausgegeben.
| Warnung |
Wandeln Sie nie einen Teil eines Ausdrucks nach integer um,
da dies manchmal zu unerwarteten Ergebnissen führen kann.
Für mehr Informationen schauen Sie unter
Warnung über float-Präzision
nach.
|
| Achtung |
Das Verhalten bei der Umwandlung nach integer ist für andere
Typen nicht definiert. Zum gegenwärtigen Zeitpunkt ist das Verhalten
so, als ob der Wert zuerst nach
boolean
konvertiert wird. Auf jeden Fall sollten Sie sich auf dieses Verhalten
nicht verlassen. Es kann sich ohne Ankündigung
ändern.
|