ホームページ >バックエンド開発 >PHPチュートリアル >PHP整数型(整数)
整数は、集合 ℤ = {..., -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]+
整数:[+-]?16進数
| [+-]?
| [+-]?binary
<?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) ?>整数に変換値を整数に明示的に変換するには、(int) または (integer) キャストを使用します。ただし、演算子、関数、またはフロー制御で整数パラメーターが必要な場合、値は自動的に変換されるため、ほとんどの場合、キャストは必要ありません。関数 intval() を使用して値を整数型に変換することもできます。 「型変換の識別」を参照してください。 ブール値から変換すると FALSE は 0 (ゼロ) を生成し、TRUE は 1 (1) を生成します。 浮動小数点数から変換浮動小数点数から整数に変換する場合、切り捨てとなります。 浮動小数点数が整数の範囲 (通常、32 ビット プラットフォームでは +/- 2.15e+9 = 2^31、64 ビット プラットフォームでは +/- 9.22e+18 = 2^63) を超える場合、結果は正確な整数の結果を得るには精度が不十分であるため、未定義です。この場合、警告はなく、通知さえありません。 警告 未知の分数を整数にキャストしないでください。予測できない結果が生じる可能性があります。
<?php echo (int) ( (0.1+0.7) * 10 ); // 显示 7! ?>浮動小数点精度に関する警告を参照してください。 文字列から変換「文字列を数値に変換する」を参照してください。 他の型からの変換注意他の型から整数への変換の動作は定義されていません。予告なく変更される可能性があるため、既存の動作に依存しないでください。