PHPの文字列など、さまざまな型式を整数(int)型に変換してみましょう。
目次
キャスト演算子で整数(int)型に変換
文字列型を整数(int)型に変換
1 2 3 4 5 |
// 文字列(string)型の数値を変数に格納 $val = '300'; // (int)を付けると整数(int)型に変換して出力 var_dump((int)$val); |
int(300)
文字列(string)型の値を、きちんと整数(int)型に変換してくれました。
キャスト演算子の(int)を付けることで整数型に変換してくれます。
便利ですね。
intval関数で整数(int)型に変換
intval()
でもキャスト同様の型変換ができます。
1 2 3 4 5 |
// 文字列(string)型の数値を変数に格納 $val = '300'; // intvalで整数(int)型に変換 var_dump(intval($val)); |
int(300)
キャスト同様に型変換されました。
intvalで基数変換
intval()
は第二引数に基数を設定できます。
何も指定しなければ「10進数」になります。
1 2 3 4 5 6 7 8 9 10 11 |
// 文字列(string)型を数値を変数に格納 $val = '300'; // 2進数で変換 var_dump(intval($val, 2)); // 8進数で変換 var_dump(intval($val, 8)); // 16進数で変換 var_dump(intval($val, 16)); |
int(0)
int(192)
int(768)
基数とは
数値を表現する際に、各桁の重み付けの基本となる数。我々が普段している10進数では、10倍ごとに桁が上がっていくので、基数は10である。
intval関数の構文
intval (整数型に変換する文字列 (, 基数(省略可)));
基数を省略すると10進数となりますが、文字列によっては以下のようになります。
- 文字列の先頭が
0x
の場合、基数を16進数とする - 文字列の先頭が
0
の場合、基数を8進数とする
さまざまな型を整数(int)型に変換
小数点は切り捨てられる
30.5
などの小数点を含む数値は浮動小数点(float)型と呼ばれ、整数(int)型とは区別されます。
これら浮動小数点(float)型の小数点以下は切り捨てられます。
1 2 3 4 5 |
// 浮動小数点(float)型を変数に格納 $val = 30.5; // 整数(int)型にキャストすると小数点以下は切り捨て var_dump(intval($val)); |
int(30)
空文字や配列を変換
空文字や配列は以下のように整数(int)型に変換されます。
1 2 3 4 5 |
var_dump(intval('')); var_dump(intval(NULL)); var_dump(intval(false)); var_dump(intval(array())); var_dump(intval(array('東京','大阪'))); |
int(0)
int(0)
int(0)
int(0)
int(1)
値が入った配列のみ1
を返し、それ以外は0
を返します。
参考:PHPで文字列型に変換する2つの方法と、型を確認する方法
参考:PHPの型変換により、FALSEのはずがTRUE判定に!!
PHPは型を意識せずコーディングできますが、それだけに思わぬエラーの原因にもなります。
文字列を比較する際は型を揃えるなどして、思わぬ誤作動を防ぎたいものです。
そんなとき、キャストや型変換の関数は簡単に使えますので、覚えておくと良いでしょう。