PHP の数値
1. PHPの数値(PHP Numbers)
PHPにおける主要な数値型は以下の3つです:
- Integer(整数)
- Float(浮動小数点数)
- Numeric Strings(数値形式の文字列)
さらに、PHPには数値に関連する2つの特別なデータ型があります:
- Infinity(無限大)
- NaN(非数値)
数値型のバリアブル(Variable)は、値を代入した瞬間に作成されます。
1.1 使用例
自身のPHPサーバーで試してみましょう:
$a = 5;
$b = 5.34;
$c = "25";PHPでバリアブルやオブジェクト(Object)のデータ型(Data type)を確認するには、var_dump() ファンクション(Function)を使用します。
1.2 データ型の検証例
var_dump($a);
var_dump($b);
var_dump($c);2. is_int() 関数
is_int() ファンクションは、バリアブルの型が整数(Integer)かどうかをチェックします。
整数とは、2, 256, -256, 10358, -179567 のような小数部分を持たない数値のことです。
2.1 整数型の判定例
$x = 5985;
var_dump(is_int($x));
$y = 59.85;
var_dump(is_int($y));整数データ型は、32ビットシステムでは -2147483648 から 2147483647 の間、64ビットシステムでは -9223372036854775808 から 9223372036854775807 の間の非小数値です。この制限を超える値は、整数の範囲を超えるため、フロート(Float)として保存されます。
注意:4 * 2.5 は 10 ですが、オペランドの1つがフロート(2.5)であるため、結果はフロートとして保存されます。
整数の基本ルール:
- 少なくとも1つの数字が必要です。
- 小数点を持ってはいけません。
- 正の数、または負の数のいずれかになります。
- 10進数(base 10)、16進数(base 16 - 接頭辞
0x)、8進数(base 8 - 接頭辞0)、または2進数(base 2 - 接頭辞0b)の4つの形式で指定できます。
PHPには、整数に関する以下の定義済みコンスタント(Constant)があります:
PHP_INT_MAX:サポートされる最大の整数PHP_INT_MIN:サポートされる最小の整数PHP_INT_SIZE:整数のサイズ(バイト単位)
3. is_float() 関数
is_float() ファンクションは、バリアブルの型がフロート(Float)かどうかをチェックします。
フロートは、小数点を持つ数値、または指数形式の数値です(2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 など)。
3.1 フロート型の判定例
$x = 10.365;
var_dump(is_float($x));フロートデータ型は通常、最大 1.7976931348623E+308(プラットフォーム依存)までの値を保持でき、最大精度は14桁です。
PHPには、フロートに関する以下の定義済みコンスタントがあります(PHP 7.2以降):
PHP_FLOAT_MAX:表現可能な最大の浮動小数点数PHP_FLOAT_MIN:表現可能な最小の正の浮動小数点数PHP_FLOAT_DIG:精度を失うことなくフロートに変換し、元に戻せる10進桁数PHP_FLOAT_EPSILON:x + 1.0 != 1.0となる最小の正の数 x
4. PHP Infinity(無限大)
is_finite() ファンクションは、値が有限かどうかをチェックします。値がそのプラットフォーム上のPHPフロートの許容範囲内であれば、有限(finite)とみなされます。
一方、is_infinite() ファンクションは、値が無限かどうかをチェックします。
4.1 無限大の判定例
$x = 1.9e411;
var_dump(is_infinite($x));5. PHP NAN と is_nan() 関数
NAN は「Not A Number(非数値)」の略です。
NAN は、無効な数学演算の結果として返されます。is_nan() ファンクションは、値が NAN かどうかをチェックするために使用されます。
5.1 使用例
$x = acos(8);
var_dump($x);
// 値が非数値 (NaN) かどうかをチェック
var_dump(is_nan($x));6. PHPの数値と数値文字列
is_numeric() ファンクションは、バリアブルが数値であるか、あるいは数値形式の文字列であるかをチェックします。
数値または数値文字列であれば true を返し、それ以外の場合は false を返します。
6.1 数値文字列の判定例
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));7. 変数の整数値を取得する(intval)
intval() ファンクションは、バリアブルの整数(Integer)値を取得するために使用されます。
7.1 使用例
フロートとストリング(String)から整数値を取得します:
$x = 23465.768;
echo intval($x);
echo "<br>";
$x = "23465.768";
echo intval($x);