PHP番号
この章では、整数、浮動小数点数、および数値文字列について詳しく説明します。
PHP番号
PHPについて注意すべきことの1つは、自動データ型変換を提供することです。
したがって、変数に整数値を割り当てると、その変数の型は自動的に整数になります。次に、同じ変数に文字列を割り当てると、タイプが文字列に変わります。
この自動変換により、コードが破損する場合があります。
PHP整数
2、256、-256、10358、-179567はすべて整数です。
整数は、小数部のない数値です。
整数データ型は、32ビットシステムでは-2147483648〜2147483647、64ビットシステムでは-9223372036854775808〜9223372036854775807の10進数ではありません。これより大きい(または小さい)値は、整数の制限を超えているため、floatとして格納されます。
注:もう1つ知っておくべき重要なことは、4 * 2.5が10であっても、オペランドの1つがfloat(2.5)であるため、結果はfloatとして格納されることです。
整数の規則は次のとおりです。
- 整数には少なくとも1桁の数字が必要です
- 整数は小数点を持ってはいけません
- 整数は正または負のいずれかになります
- 整数は、10進数(10ベース)、16進数(16ベース-接頭辞0x)、または8進数(8ベース-接頭辞0)の3つの形式で指定できます。
PHPには、整数用に次の定義済み定数があります。
- PHP_INT_MAX-サポートされている最大の整数
- PHP_INT_MIN-サポートされている最小の整数
- PHP_INT_SIZE-整数のサイズ(バイト単位)
PHPには、変数の型が整数であるかどうかをチェックするための次の関数があります。
- is_int()
- is_integer()-is_int()のエイリアス
- is_long()-is_int()のエイリアス
例
変数の型が整数かどうかを確認します。
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
PHPフロート
浮動小数点数は、小数点付きの数値または指数形式の数値です。
2.0、256.4、10.358、7.64E + 5、5.56E-5はすべてフロートです。
floatデータ型は通常、最大1.7976931348623E + 308(プラットフォームに依存)の値を格納でき、最大精度は14桁です。
PHPには、float用に次の定義済み定数があります(PHP 7.2以降)。
- PHP_FLOAT_MAX-表現可能な最大の浮動小数点数
- PHP_FLOAT_MIN-表現可能な最小の正の浮動小数点数
- -PHP_FLOAT_MAX-表現可能な最小の負の浮動小数点数
- PHP_FLOAT_DIG-精度を損なうことなく浮動小数点数に丸めて戻すことができる小数点以下の桁数
- PHP_FLOAT_EPSILON-表現可能な最小の正の数xであるため、x + 1.0!= 1.0
PHPには、変数の型がfloatであるかどうかをチェックするための次の関数があります。
- is_float()
- is_double()-is_float()のエイリアス
例
変数の型がfloatであるかどうかを確認します。
<?php
$x = 10.365;
var_dump(is_float($x));
?>
PHP Infinity
PHP_FLOAT_MAXより大きい数値は、無限と見なされます。
PHPには、数値が有限か無限かをチェックするための次の関数があります。
ただし、PHPのvar_dump()関数はデータ型と値を返します。
例
数値が有限か無限かを確認します。
<?php
$x = 1.9e411;
var_dump($x);
?>
PHP NaN
NaNはNotaNumberの略です。
NaNは、不可能な数学演算に使用されます。
PHPには、値が数値でないかどうかをチェックするための次の関数があります。
ただし、PHPのvar_dump()関数はデータ型と値を返します。
例
無効な計算はNaN値を返します:
<?php
$x = acos(8);
var_dump($x);
?>
PHP数値文字列
PHPのis_numeric()関数を使用して、変数が数値であるかどうかを確認できます。この関数は、変数が数値または数値文字列の場合はtrueを返し、それ以外の場合はfalseを返します。
例
変数が数値かどうかを確認します。
<?php
$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));
?>
注: PHP 7.0以降:is_numeric()関数は、16進形式の数値文字列(0xf4c3b00cなど)に対してFALSEを返します。これは、数値文字列とは見なされなくなったためです。
文字列と浮動小数点数を整数にキャストするPHP
数値を別のデータ型にキャストする必要がある場合があります。
(int)、(integer)、またはintval()関数は、値を整数に変換するためによく使用されます。
例
floatとstringを整数にキャストします。
<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Cast string to int
$x =
"23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>