UPDATE:2020年07月06日
PHP の 整数型(integer) について
- 整数型とは 正負の整数値 のこと
- 整数型の種類は スカラー型
- 整数型のチェックは is_integer() 関数 で行う
- 整数型限界値は 32bitシステム で +-2147483647
- 整数型限界値は 64bitシステム で +-9223372036854775807
整数型とは
- 整数型とは 正負の整数値 のこと
- 整数型の種類は スカラー型
整数型とは正負の整数 64 や 256 や -2 などの数値を扱う型です。先頭にプラス「+」やマイナス「-」の符号が付くこともあります。符号を省略した場合は正の数となります。
整数リテラルの表記方法には10進形式、8進形式、16進形式の3通りがあります。リテラルの詳細はこちら。
コンピュータが0と1の2進数で内部処理を行うというのは有名ですよね。進数というのは数値の数え方の1つです。普段私たちが数を数えるのに使用しているのが10進形式です。10進形式は0、1、2、3、4、5、6、7、8、9の10種類の数字で表現します。10コをひとまとまりとし、10コ目で桁があがります。
10進形式
145 -641 +33 などです。
1 2 3 4 5 6 | <!-- サンプルコード --> 10進数値: <?php $i10System = 256; echo $i10System; ?> |
結果は
となります。
8進形式
先頭が0で、その後に0から7までの数字が続きます。
0755 10進で 493 です。
+010 10進で 8 です。
1 2 3 4 5 6 | <!-- サンプルコード --> 8進数値: <?php $i8System = 0123; echo $i8System; ?> |
結果は
となります。
16進形式
先頭が0x、その後に数字(0~9)あるいは(A~F)が続きます。
0xFF 10進で 255 です。
0x10 10進で 16 です。
1 2 3 4 5 6 | <!-- サンプルコード --> 16進数値: <?php $i16System = 0x1A; echo $i16System; ?> |
[ 16進数値: 26 ]
整数型を調べる
- 整数型のチェックは is_integer() 関数 で行う
整数型であるかどうかし調べるには、is_int()関数かis_integer()関数を使用します。
1 2 3 4 5 | <!-- サンプルコード --> <?php $iInt = 256; if(is_integer($iInt) === TRUE) echo '整数型です。'; ?> |
結果は
となります。
bool TRUE か FALSE = is_int(mixed $var);
説明 | 変数のデータ型が整数型かどうかチェックする | |
---|---|---|
引数 | mixed $var | データ型を調べる変数 |
返り値 | bool | 変数が整数型の場合:TRUE、変数が整数型ではない場合:FALSE |
サンプル
1 2 3 4 5 6 7 8 9 | <?php $isInt = 1024; echo is_int($isInt) ? "整数型です。<br>\n" : "整数型ではありません。<br>\n"; //整数型です。 $notInt = 3.14; echo is_int($notInt) ? "整数型です。<br>\n" : "整数型ではありません。<br>\n"; //整数型ではありません。 ?> |
扱える値の範囲
- 整数型限界値は 32bitシステム で +-2147483647
- 整数型限界値は 64bitシステム で +-9223372036854775807
扱うことのできる値の範囲は -2,147,483,648 から +2,147,483,648 です。
この値はプラットフォームにより異なります。
整数型限界値は、32bitシステムで +-2147483647 です。
限界値を超えると浮動小数点型として扱われます。
1 2 3 4 5 6 7 8 9 10 | <!-- サンプルコード --> <?php $iLimitNum = 2147483647; //限界値を指定 var_dump($iLimitNum); //型と値を出力してくれるvar_dump if(is_integer($iLimitNum) === TRUE) echo ' 整数型です。'; echo "<br>"; $fLimitOverNum = 2147483648; //限界値+1を指定 var_dump($fLimitOverNum); if(is_float($fLimitOverNum) === TRUE) echo ' 浮動小数点数型です。'; ?> |
結果は
float(9.2233720368548E+18) 浮動小数点数型です。
となります。
整数型限界値 62bitシステム 限界値は+-9223372036854775807です。
限界値を超えると浮動小数点型として扱われます。
1 2 3 4 5 6 7 8 9 10 | <!-- サンプルコード --> <?php $iLimitNum = 9223372036854775807; //限界値を指定 var_dump($iLimitNum); //型と値を出力してくれるvar_dump if(is_integer($iLimitNum) === TRUE) echo ' 整数型です。'; echo "<br>"; $fLimitOverNum = 9223372036854775808; //限界値+1を指定 var_dump($fLimitOverNum); if(is_float($fLimitOverNum) === TRUE) echo ' 浮動小数点数型です。'; ?> |
結果は
float(9.2233720368548E+18) 浮動小数点数型です。
となります。
データ型の種類
- PHPの8つのデータ型:
- PHPの3のデータ種類:
データ型の表
型名 | 種類 | 例 | |
---|---|---|---|
文字列型 | string | スカラー型 | 'Hello World!!' "我思う、ゆえに我あり" |
整数型 | integer | スカラー型 | 1、2020、-588、+98 8進数 16進数 |
浮動小数点数型 | float(double) | スカラー型 | 1.4142、-0.18 |
論理型 | boolean | スカラー型 | TRUE | FALSE (true false) (大文字・小文字を区別しない) |
配列型 | array | 複合型 | array('name','address') |
オブジェクト型 | object | 複合型 | $oObj = new ClassName(); |
リソース型 | resource | 特殊型 | resource |
ヌル型 | null | 特殊型 | NULL | null | Null (大文字・小文字を区別しない) |
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | <!-- サンプルコード --> ・整数: <?php $iNum = 548; echo $iNum.' '; $iNum = -36; echo $iNum.' '; $iNum = +21; echo $iNum.' '; ?> <br><br> ・10進数値: <?php $i10System = 256; echo $i10System; ?> <br><br> ・8進数値: <?php $i8System = 0123; echo $i8System; ?> <br><br> ・16進数値: <?php $i16System = 0x1A; echo $i16System; ?> <br><br> ・整数型を調べる: <?php $iInt = 256; if(is_integer($iInt) === TRUE) echo '整数型です。'; ?> <br><br> ・整数型限界値 32bitシステム 限界値は2147483647です。限界値を超えると浮動小数点型として扱われます。<br> <?php $iLimitNum = 2147483647; //限界値を指定 var_dump($iLimitNum); //型と値を出力してくれるvar_dump if(is_integer($iLimitNum) === TRUE) echo ' 整数型です。'; echo "<br>"; $fLimitOverNum = 2147483648; //限界値+1を指定 var_dump($fLimitOverNum); if(is_float($fLimitOverNum) === TRUE) echo ' 浮動小数点数型です。'; ?> <br><br> ・整数型限界値 62bitシステム 限界値は9223372036854775807です。限界値を超えると浮動小数点型として扱われます。<br> <?php $iLimitNum = 9223372036854775807; //限界値を指定 var_dump($iLimitNum); //型と値を出力してくれるvar_dump if(is_integer($iLimitNum) === TRUE) echo ' 整数型です。'; echo "<br>"; $fLimitOverNum = 9223372036854775808; //限界値+1を指定 var_dump($fLimitOverNum); if(is_float($fLimitOverNum) === TRUE) echo ' 浮動小数点数型です。'; ?> |
・10進数値: 256
・8進数値: 83
・16進数値: 26
・整数型を調べる: 整数型です。
・整数型限界値 32bitシステム 限界値は2147483647です。限界値を超えると浮動小数点型として扱われます。
int(2147483647) 整数型です。
int(2147483648)
・整数型限界値 62bitシステム 限界値は9223372036854775807です。限界値を超えると浮動小数点型として扱われます。
int(9223372036854775807) 整数型です。
float(9.2233720368548E+18) 浮動小数点数型です。
タグ(=記事関連ワード)
日付
最終更新日:2020年07月06日