PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

【PHP入門】整数(Integer)データ型の基本と使い方を徹底解説

整数(Integer)データ型とは

PHPにおける整数(Integer)は、小数点以下の部分を持たない数値を表すスカラーデータ型です。PHPでは、適切な接頭辞を付けることで、整数を10進法・16進法・8進法・2進法のいずれかで表現することができます。

デフォルトでは整数は10進数として解釈されます。16進数・8進数・2進数を表す場合は、それぞれ「0x」「0」「0b」という接頭辞を数値の先頭に付けます。

基本的な書き方(構文)

<?php
// 変数への整数リテラルの代入例
$var = 232; // 10進数
$var1 = 045; // 8進数
$var2 = 0xB2; // 16進数
$var3 = 0b1001; // 2進数
?>

区切り文字「_」による可読性の向上

大きな数値を読みやすくするために、整数リテラルには「_」を桁区切りとして使用できます。この記号はPHPのパーサーが処理時に自動的に無視するため、数値そのものには影響しません。

<?php
$var = 55_467; // 55467 として扱われる
?>

対応するPHPバージョン

桁区切り文字「_」の使用は、PHP 7.4.0以降で利用可能です。

次の例は、さまざまな記法による整数リテラルの表現方法を示しています。

サンプルコード:各進数での表現

<?php
$var = 10;
echo "10進数 : " . $var . "\n";
// 8進数
$var1 = 010;
echo "8進数 : " . $var1 . "\n";
// 16進数
$var2 = 0x10;
echo "16進数 : " . $var2 . "\n";
// 2進数
$var3 = 0b10;
echo "2進数 : " . $var3;
?>

実行結果

上記のコードを実行すると、次のような結果が出力されます。

10進数 : 10
8進数 : 8
16進数 : 16
2進数 : 2

各進数の値が、すべて10進数に変換されて表示されている点に注目してください。「010」は8進数で8、「0x10」は16進数で16、「0b10」は2進数で2を意味します。

サンプルコード:桁区切り文字の使用

次の例では、桁区切り文字「_」を使用した書き方を示します。

<?php
$var = 1_45_690;
echo $var . "\n";
?>

実行結果

145690

整数の範囲とオーバーフロー時の挙動

整数値が許容範囲(プラットフォーム依存ですが、一般的に64ビット環境では約±92京)を超えると、自動的に浮動小数点数(float)へ変換されます。

サンプルコード

<?php
$var = PHP_INT_MAX + 1;
var_dump($var);
?>

実行結果

float(9.2233720368548E+18)

このように、PHP_INT_MAX(整数型の最大値)に1を加えると、結果は整数ではなくfloat型になることがわかります。大きな数値を扱う場合は、この仕様に注意が必要です。

  1. Pythonのタプル(tuple)データ型とは?基本と使い方を徹底解説

    タプル(tuple)とはタプルは、リストとよく似たもう一つのシーケンス型(シーケンスデータ型)です。タプルは、カンマで区切られた複数の値によって構成されます。リストとの大きな違いは、タプルが丸括弧 ( ) で囲まれるという点です。リストとタプルの主な違いリストとタプルの違いは、次のようにまとめられます。リストは角括弧 [ ] で囲み、要素やサイズを後から変更できる。タプルは丸括弧 ( ) で囲み、一度作成すると更新できない。そのため、タプルは「読み取り専用(read-only)のリスト」と考えることができます。変更されない固定データを扱いたい場合に、タプルは非常に便利です。タプルの基本的な使い

  2. Pythonの文字列データ型の基本:定義方法・スライス・連結・繰り返しを解説

    Pythonにおける文字列とはPythonの文字列(string)は、引用符で囲まれた連続した文字の集合として表現されるデータ型です。Pythonでは、単一引用符(...)と二重引用符(...)のどちらのペアでも文字列を定義でき、両者に機能上の違いはありません。また、文字列の一部(部分文字列)を取り出すには、スライス演算子([ ] および [:])を使用します。インデックスは文字列の先頭が「0」から始まり、末尾に向かって「-1」という負の値で逆方向にも数えられるのが特徴です。文字列の連結と繰り返し文字列に対して使える主な演算子は以下のとおりです。+ (プラス記号):文字列同士を連結する演算子*