整数int は、ℤ = {..., -2, -1, 0, 1, 2, ...} という集合です。 構文整数 (integer) は、10 進数(基数 10)、16 進数 (基数 16)、8 進数 (基数 8) あるいは 2 進数 (基数 2) 表記で指定可能です。オプションで、符号(-または+)を前に付けることが可能です。
8 進数表記を使用する場合、数の前に
PHP 7.4.0 以降では、可読性を向上させるために整数リテラルの桁の間にアンダースコア
( 例1 整数リテラル
<?php
PHP 8.1.0 以降で使用可能な整数リテラルの形式は以下のように定義されています。
(これより前のバージョンでは、8進数のプレフィックス decimal : [1-9][0-9]*(_[0-9]+)* | 0 hexadecimal : 0[xX][0-9a-fA-F]+(_[0-9a-fA-F]+)* octal : 0[oO]?[0-7]+(_[0-7]+)* binary : 0[bB][01]+(_[01]+)* integer : decimal | hexadecimal | octal | binary
整数のサイズはプラットフォームに依存しますが、
約 20 億 (32 ビット符号付) が一般的な値です。
64 ビットプラットフォームでの通常の最大値は、およそ 9*10^18 (900京) になります。
PHP は符号無し整数をサポートしていません。
整数のサイズは定数 整数のオーバーフローint型の範囲外の数を指定した場合、かわりに floatとして解釈されます。また、結果が int型の範囲外の数となるような計算を行うと floatが代わりに返されます。 例2 32 ビットシステムにおける整数のオーバーフロー
<?php 例3 64 ビットシステムにおける整数のオーバーフロー
<?php
PHP には整数の割り算を行う演算子はありません。
整数の割り算を行うには、intdiv 関数を使って下さい。
<?php 整数への変換
int に値を明示的に変換するには、キャスト
resource を int に変換すると、その結果は一意なリソース番号となります。 これは、その resource に対して PHP が実行時に割り当てた番号です。 型の相互変換 を参照ください。 booleans から
浮動小数点数からfloat から整数に変換する場合、その数はゼロのほうに丸められます。 PHP 8.1.0 以降では、精度を損なうことになる float から int への暗黙の変換は推奨されなくなり、警告が発生します。
<?php
float が整数の範囲 (通常は、32 ビットプラットフォームでは
警告
未知の端数を int にキャストしないでください。 この場合、予期しない結果となることがあります。
<?php より詳細な情報については、 float の精度に関する注意を参照ください。 文字列から
文字列が
数値形式の文字列
の場合は、対応する整数値に解決されます。
そうでない場合は、ゼロ ( NULL から
他の型から警告
整数への変換の動作は、他の型については定義されません。 現在の動作は、その値がまず 論理値に変換された 場合と同じです。しかし、この動作は予告なく変更されることがありえるので、 これを前提にしてはいけません。 |