Ganzzahlige Ganzzahl
Eine ganze Zahl ist eine Menge = {..., -2, -1, 0, 1, 2, ...} in A Nummer.
Siehe:
Ganzzahl mit beliebiger Länge/GMP
Gleitkommatyp
Mathebibliothek mit beliebiger Präzision/BCMath
Syntax
Ganzzahlwerte können dezimal, hexadezimal, oktal oder binär ausgedrückt werden und können durch ein optionales Symbol vorangestellt werden (- oder).
Binäre Darstellung von Ganzzahlen verfügbar seit PHP 5.4.0.
Um den Oktalausdruck zu verwenden, muss 0 (Null) vor der Zahl hinzugefügt werden. Um einen hexadezimalen Ausdruck zu verwenden, muss der Zahl 0x vorangestellt werden. Um die binäre Darstellung zu verwenden, muss 0b vor der Zahl hinzugefügt werden.
Beispiel #1 Ganzzahliger Literalausdruck
<?php $a = 1234; // 十进制数 $a = -123; // 负数 $a = 0123; // 八进制数 (等于十进制 83) $a = 0x1A; // 十六进制数 (等于十进制 26) ?>
Die formale Beschreibung der Ganzzahl lautet:
dezimal: [1-9][0-9]*
| 0
hexadezimal: 0[xX][0-9a- fA -F]
oktal: 0[0-7]
binär: 0b[01]
Ganzzahl: [ -]?dezimal
|. hexadezimal
|. [ -]?oktal
| Der Maximalwert beträgt ungefähr zwei Milliarden (32-Bit mit Vorzeichen). Der Maximalwert auf einer 64-Bit-Plattform liegt normalerweise bei etwa 9E18. PHP unterstützt keine vorzeichenlosen Ganzzahlen. Die Wortlänge des 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.
<?php var_dump(01090); // 八进制 010 = 十进制 8 ?>
Ganzzahlüberlauf
<?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) ?> Example #4 64 位系统下的整数溢出 <?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) ?>
<?php var_dump(25/7); // float(3.5714285714286) var_dump((int) (25/7)); // int(3) var_dump(round(25/7)); // float(4) ?>
<?php echo (int) ( (0.1+0.7) * 10 ); // 显示 7! ?>
Konvertierungsverhalten von anderen Typen in Ganzzahlen ist nicht definiert. Verlassen Sie sich nicht auf bestehende Verhaltensweisen, da diese sich ohne Vorankündigung ändern können.