integer は、Z = {..., -2, -1, 0, 1, 2, ...}という集合 です。
任意精度整数 / GMP および float 、 任意精度整数 / BCMath も参照ください。
整数 (integer) は、10 進数(基数 10)、16 進数 (基数 16)、8 進数 (基数 8) 表記で指定可能です。オプションで、符号(-または+)を前に付けることが可能です。
8 進数表記を使用する場合、数の前に 0 (ゼロ) を付ける必要があります。また、16 進数表記を使用するには、数の前に 0x を付ける必要があります。
integer 型の範囲外の数を指定した場合、かわりに float として解釈されます。また、結果が integer 型の範囲外の数となるような計算を行うと float が代わりに返されます。
<?php
|
| 警告 |
|
不幸にして、過去のスクリプトエンジンにはバグがあり、 負の数が含まれている場合に、常に正しく動作するわけではありませんでした。例えば、 -50000 * $million を実行した場合、結果は、 -429496728 となりました。 しかし、オペランドが共に正の場合は問題ありませんでした。 この問題は PHP 4.1.0 で解決されました。 |
PHP には整数の割り算はありません。 1/2 は float 型の 0.5 になります。 下方向の整数値に値を丸めるためにキャストを使用することができ、 また、 round() 関数を使用することもできます。
integer に値を明示的に変換するには、キャスト (int) または (integer) のどちらかを使用してください。しかし、多くの場合、演算子、関数、制御構造が integer 引数を必要とする場合、値は自動的に変換されるため、 キャストを使用する必要はありません。 関数 intval() を用いて値を整数に変換することも可能です。
型の相互変換 を参照ください。
FALSE は、 0 (ゼロ) となり、 TRUE は、 1 となります。
float から整数に変換する場合、その数はゼロの方に丸められます。
float が整数の範囲 (通常は +/- 2.15e+9 = 2^31 ) を越える場合、結果は undefined となります。これは、 その float が正しい整数の結果を得るために十分な精度を得られなかったからです。 この場合、警告も通知も発生しません!
| 警告 |
|
未知の端数を integer にキャストしないでください。 この場合、予期しない結果となることがあります。 より詳細な情報については、 float の精度に関する注意 を参照ください。 |