PHPで文字列が入った変数を数値型に変換する方法です。
目次
結論:intキャスト
$string = "123";
$number = (int)$string;
echo $number; // 123
(int)
キャストは、PHPで変数を整数型に明示的に変換するための方法です。
この例では、文字列"123"
を整数に変換しています。
ただし、文字列が"abc"
のような非数値の場合は、整数0
に変換されます。
その他の方法:intval()関数
intval()
関数を使用することでも、文字列を数値型に変換できます。
$string = "123";
$number = intval($string);
echo $number; // 123
intval()関数とintキャストの違いは?
以下の例では、"abc"
という非数値の文字列が与えられています。intval()
関数も(int)
キャストもどちらも0
を返します。この点は同じです。
$string = "abc";
// intval() 関数の場合
$number = intval($string);
echo $number; // 0
// (int) キャストの場合
$number = (int)$string;
echo $number; // 0
違う点として、intval()
関数はオプションを指定できます。
たとえば、intval()
関数では、第二引数に基数を指定できますが、(int)
キャストでは基数を指定する方法はありません。
$string = "10";
// intval() 関数の場合
$number = intval($string, 2); // 2進数として解釈
echo $number; // 2
// (int) キャストの場合
$number = (int)$string;
echo $number; // 10
これにより、intval()
関数なら、16進数や8進数などの特定の基底で文字列を数値に変換することが可能です。
数値型になっていることをチェックする方法
is_int()
関数を使用することで、変数が整数型かどうかを確認できます。
$string = "123";
$number = intval($string);
// 型チェック
if (is_int($number)) {
echo "変数 \$number は整数型です。";
} else {
echo "変数 \$number は整数型ではありません。";
}
浮動小数点数に変換する場合
浮動小数点数に変換する場合はfloatval()
関数やキャスト(float)
を使用します。
floatval()関数
// floatval() 関数を使用する場合
$string = "123.45";
$floatNumber = floatval($string);
echo $floatNumber; // 123.45
floatキャスト
// キャスト (float) を使用する場合
$string = "123.45";
$floatNumber = (float)$string;
echo $floatNumber; // 123.45
intval()関数やintキャストを使用すると小数点以下切り捨て
intval()
関数や (int)
キャストを使用して浮動小数点数を整数に変換すると、小数点以下が切り捨てられた整数が得られます。
// intval() 関数を使用する場合
$string = "123.45";
$integerNumber = intval($string);
echo $integerNumber; // 123
// (int) キャストを使用する場合
$string = "123.45";
$integerNumber = (int)$string;
echo $integerNumber; // 123