A integer は、集合 ℤ = {..., -2, -1, 0, 1, 2, ...} 内の数値です。
整数値は、10 進数、16 進数、8 進数、または 2 進数で表すことができ、先頭にオプションの記号 (- または +) を付けることができます。
バイナリで表現された整数は、PHP 5.4.0 以降で使用できます。
8進数表現を使用するには、数値の前に0(ゼロ)を追加する必要があります。 16 進数表現を使用するには、数値の前に 0x を付ける必要があります。バイナリ表現を使用するには、数値の前に 0b を付ける必要があります。
例 #1 整数テキスト式
<?php $a = 1234; // 十进制数 $a = -123; // 负数 $a = 0123; // 八进制数 (等于十进制 83) $a = 0x1A; // 十六进制数 (等于十进制 26) ?>
整数の正式な説明は次のとおりです:
10 進数: [1-9][0-9]*
| 0
16 進数: 0[xX][0- 9a -fA-F]+
8進数:0[0-7]+
2進数:0b[01]+
整数:[+-]?10進数
| [+-] ?octal
| [+-]?binary
PHP_INT_SIZE で表すことができます。PHP 4.4.0 および PHP 5.0.5 以降では、最大値は定数 PHP_INT_MAX で表すことができます。 警告
不正な数値 (8 または 9 など) が 8 進数に渡された場合、残りの桁は無視されます。
例 #2 8 進数の奇妙なこと
<?php var_dump(01090); // 八进制 010 = 十进制 8 ?>
整数オーバーフロー
として解釈されます。同様に、演算結果が整数の範囲を超える場合も浮動小数点数が返されます。 例 #3 32 ビット システムでの整数オーバーフロー
<?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) ?>
例 #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 には整数除算の
演算子がありません。 1/2 は float 0.5 を生成します。値は、小数部分を除いた整数にキャストすることも、丸めを改善するためにround()関数を使用することもできます。
<?php var_dump(25/7); // float(3.5714285714286) var_dump((int) (25/7)); // int(3) var_dump(round(25/7)); // float(4) ?>
「型変換の区別
」を参照してください。 FALSE は 0 (ゼロ) を生成し、TRUE は 1 (1) を生成します。浮動小数点からの変換
<?php echo (int) ( (0.1+0.7) * 10 ); // 显示 7! ?>
以上がPHP データ型整数 (Integer) を解析します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。