Ein Integer ist eine Zahl aus der Menge Z = {..., -2,
-1, 0, 1, 2, ...}.
Siehe auch: Ganzzahlen beliebiger Länge /
GMP, Fließkomma-Zahlen und Mathematische Funktionen mit beliebiger
Genauigkeit
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 11-1. Integer Literale |
<?php
$a = 1234; // Dezimalzahl
$a = -123; // eine negative Zahl
$a = 0123; // Oktalzahl (entspricht 83 dezimal)
$a = 0x1A; // Hexadezimalzahl (entspricht 26 dezimal)
?>
|
|
Formell ist die mögliche Struktur für Integer Literale:
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
vorzeichenlosen 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 es keine Probleme.
Dieses Problem ist in PHP 4.1.0 behoben worden.
|
In PHP gibt es keinen Operator für Integer-Divisonen.
1/2 ergibt float
0.5. Sie können den Wert in einen Integer
umwandeln, um ihn immer abzurunden oder die Funktion
round() benutzen.
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 erfordern.
Sie können einen Wert auch mit der Funktion
intval() in einen Integer umwandeln.
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.
|