Integer Typen
Ein
Integer
ist
eine
Nummer
aus
der
Menge
Z
=
{
...
,
-2
,
-1
,
0
,
1
,
2
,
..
.
}
.
Siehe
auch
:
Ganzzahlen
beliebiger
Länge
und
Fließkomma-Zahlen
Syntax
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
7-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.
Integer Überlauf
Wenn
Sie
eine
Zahl
jenseits
der
Grenzen
des
Typs
Integer
angeben
,
wird
diese
stattdessen
als
Typ
float
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
.
Umwandlung nach Integer
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.
|
Von anderen Typen
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
.
|