Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Integer-Typ (Integer)
Eine ganze Zahl ist eine Zahl in der Menge ℤ = {..., -2, -1, 0, 1, 2, ...}.
Syntax
Ganzzahlwerte können dezimal, hexadezimal, oktal oder binär dargestellt werden und ihnen kann ein optionales Symbol (- oder +) vorangestellt werden.
Die binäre Darstellung von Ganzzahlen ist seit PHP 5.4.0 verfügbar.
Um die oktale Darstellung zu verwenden, muss einer Zahl eine 0 (Null) vorangestellt werden. Um die hexadezimale Darstellung zu verwenden, muss der Zahl 0x vorangestellt werden. Um eine binäre Darstellung zu verwenden, muss der Zahl 0b vorangestellt werden.
Beispiel #1 Integer-Literalausdruck
<?php $a = 1234; // 十进制数 $a = -123; // 负数 $a = 0123; // 八进制数 (等于十进制 83) $a = 0x1A; // 十六进制数 (等于十进制 26) ?>
Die formale Beschreibung von Integer lautet:
dezimal: [1-9][0-9]*
|. 0
hexadezimal: 0[xX][0-9a-fA-F]+
oktal: 0[0-7]+
binär: 0b[ 01 ]+
Ganzzahl: [+-]?dezimal
| [+-]?oktal
| 🎜>Die Wortgröße von Ganzzahlen ist plattformabhängig, obwohl das übliche Maximum etwa zwei Milliarden (32-Bit-vorzeichenbehaftet) beträgt. Der Maximalwert auf 64-Bit-Plattformen liegt normalerweise bei etwa 9E18. PHP unterstützt keine vorzeichenlosen Ganzzahlen. Die Wortlänge eines Integer-Wertes kann durch die Konstante PHP_INT_SIZE dargestellt werden. Seit PHP 4.4.0 und PHP 5.0.5 kann der Maximalwert durch die Konstante PHP_INT_MAX dargestellt werden.
Ganzzahlüberlauf
<?php var_dump(01090); // 八进制 010 = 十进制 8 ?>Wenn eine bestimmte Zahl den Bereich einer Ganzzahl überschreitet, wird sie als Gleitkommazahl interpretiert. Wenn das Ergebnis der Operation den Bereich einer Ganzzahl überschreitet, wird ebenfalls Float zurückgegeben. Beispiel Nr. 3 Ganzzahlüberlauf unter 32-Bit-System
Beispiel Nr. 4 Ganzzahlüberlauf unter 64-Bit-System
<?php $large_number = 2147483647; var_dump($large_number); // int(2147483647) $large_number = 2147483648; var_dump($large_number); // float(2147483648) $million = 1000000; $large_number = 50000 * $million; var_dump($large_number); // float(50000000000) ?>
Es gibt keine Ganzzahldivisionsoperation im PHP-Symbol. 1/2 ergibt Float 0,5. Der Wert kann in eine ganze Zahl umgewandelt werden, wobei der Bruchteil verworfen wird, oder zur besseren Rundung kann die Funktion „round()“ verwendet werden.
<?php $large_number = 9223372036854775807; var_dump($large_number); // int(9223372036854775807) $large_number = 9223372036854775808; var_dump($large_number); // float(9.2233720368548E+18) $million = 1000000; $large_number = 50000000000000 * $million; var_dump($large_number); // float(5.0E+19) ?>
In Ganzzahl konvertieren
<?php var_dump(25/7); // float(3.5714285714286) var_dump((int) (25/7)); // int(3) var_dump(round(25/7)); // float(4) ?>Um einen Wert explizit in eine Ganzzahl umzuwandeln, verwenden Sie die Umwandlung (int) oder (integer). In den meisten Fällen ist eine Umwandlung jedoch nicht erforderlich, da der Wert automatisch konvertiert wird, wenn ein Operator, eine Funktion oder eine Flusssteuerung einen ganzzahligen Parameter erfordert. Sie können auch die Funktion intval() verwenden, um einen Wert in einen Ganzzahltyp umzuwandeln. Siehe: Diskriminierung der Typkonvertierung. Konvertierung von einem booleschen Wert FALSE ergibt 0 (Null), TRUE erzeugt 1 (Eins). Konvertierung von Gleitkomma Bei der Konvertierung von Gleitkomma in Ganzzahl wird abgerundet. Wenn die Gleitkommazahl den Ganzzahlbereich überschreitet (normalerweise +/- 2,15e+9 = 2^31 auf 32-Bit-Plattformen, +/- 9,22e+18 = 2^63 auf 64-Bit-Plattformen). ) ist das Ergebnis undefiniert, da die Genauigkeit nicht ausreicht, um ein exaktes ganzzahliges Ergebnis zu liefern. In diesem Fall gibt es keine Warnung, nicht einmal eine Benachrichtigung! WarnungWechseln Sie niemals einen unbekannten Bruch in eine ganze Zahl um, da dies manchmal zu unvorhersehbaren Ergebnissen führen kann.
Siehe Warnung zur Gleitkommagenauigkeit.
<?php echo (int) ( (0.1+0.7) * 10 ); // 显示 7! ?>Aus String konvertieren Siehe String in numerischen Wert konvertieren. Konvertierung von anderen TypenAchtungKonvertierung von anderen Typen in Ganzzahl ist nicht definiert. Verlassen Sie sich nicht auf bestehende Verhaltensweisen, da diese sich ohne Vorankündigung ändern können.