PHPの型変換(キャスト)まとめ!文字列を数値に変える方法と注意点
生徒
「PHPで、文字として入力された数字を計算に使うことはできますか?」
先生
「PHPでは、型変換やキャストを使うと、文字列を数値に変えることができます。」
生徒
「文字列と数値は違うものなんですか?」
先生
「はい。見た目が同じ数字でも、文字として扱う場合と、計算できる数値として扱う場合があります。」
生徒
「フォームから入力された値も関係ありますか?」
先生
「もちろんです。PHPのフォーム入力では文字列として受け取ることが多いので、型変換はとても重要です。それでは詳しく見ていきましょう。」
1. PHPの型変換とは?
PHPの型変換とは、データ型を別のデータ型へ変更することです。PHPには文字列型、整数型、浮動小数点数型、真偽値型、配列型などのデータ型があります。データ型とは、変数に保存されているデータの種類のことです。
例えば、"100"は数字に見えますが、ダブルクォーテーションで囲まれているため文字列型です。一方で100は整数型です。見た目は似ていますが、PHP内部では異なる種類のデータとして扱われています。
プログラミング初心者の方は、文字列を紙に書かれた数字、数値を電卓で計算できる数字と考えると理解しやすいでしょう。紙に書かれた数字は見えるだけですが、電卓に入力すると計算できます。PHPでも文字列を数値へ変換することで計算できるようになります。
PHPのWebアプリケーション開発では、フォーム入力、商品価格の計算、在庫数の管理、注文数の集計など、多くの場面で型変換が利用されます。そのため、PHP初心者が最初に覚えておきたい重要な知識の1つです。
2. キャストとは?
キャストとは、プログラマーが明示的にデータ型を変更する方法です。明示的とは、自分で分かるように明確に指定するという意味です。
PHPでは、変数の前に(int)や(float)などを書くことで、型変換を行えます。これをキャストと呼びます。
$price = "1000";
$number = (int)$price;
echo $number;
1000
この例では、文字列型の"1000"を整数型へ変換しています。PHPのキャストを使うことで、データ型を意識しながら安全にプログラムを書くことができます。
PHPの実務では、フォーム入力値の計算やデータベースから取得した値の処理でキャストを使うことがよくあります。
3. 文字列を整数に変換する方法
PHPで文字列を整数へ変換する場合は、(int)を使用します。整数とは小数点を含まない数値です。
商品数や注文数、会員IDなど、小数を使わないデータを扱う場合に利用されます。
$count = "5";
$total = (int)$count * 100;
echo $total;
500
この例では、文字列の"5"を整数へ変換し、100を掛けています。結果は500になります。
PHPでは自動的に型変換されることもありますが、初心者のうちは(int)を使って型変換していることを明確に書いたほうが理解しやすくなります。
4. 文字列を小数に変換する方法
小数を扱いたい場合は、(float)を使用します。浮動小数点数型とも呼ばれます。
税率、平均点、割引率、身長、体重など、小数を含む値を扱う場合によく利用されます。
$rate = "1.08";
$result = (float)$rate * 1000;
echo $result;
1080
この例では、文字列型の"1.08"を小数へ変換し、1000を掛けています。
PHPのショッピングサイトや業務システムでは、消費税計算や割引計算などで浮動小数点数型が利用されることが多くあります。
5. 型変換される前後を確認する方法
PHPでは、var_dump()を使うことで変数の型を確認できます。
型変換の学習では、実際に変換前と変換後を確認すると理解しやすくなります。
$value = "100";
var_dump($value);
$value = (int)$value;
var_dump($value);
string(3) "100"
int(100)
最初は文字列型として表示されていますが、キャスト後は整数型へ変換されていることが確認できます。
PHP初心者は、変数の中身が思った通りになっているか確認するために、var_dump()を積極的に利用するとよいでしょう。
6. 数字以外の文字が含まれている場合
PHPでは、文字列の先頭に数字がある場合、その部分だけを数値として変換することがあります。
$value = "123abc";
echo (int)$value;
123
この場合は先頭の123だけが数値として扱われます。
$value = "abc123";
echo (int)$value;
0
今度は文字から始まっているため、数値へ変換できず0になります。
PHPの型変換では、このような挙動を理解しておかないと計算結果が想定と異なる場合があります。
7. フォーム入力で型変換が必要な理由
PHPのフォーム処理では、入力された値は基本的に文字列型として受け取ります。
年齢入力欄に20と入力しても、PHPでは文字列として受け取られます。そのため、年齢計算や料金計算を行う場合は型変換が必要です。
$age = "20";
$nextYear = (int)$age + 1;
echo $nextYear;
21
このようにキャストすることで、正しく数値計算を行えます。
PHPの会員登録画面や注文フォームでは、型変換は非常によく使われる処理です。
8. PHPの主なキャスト一覧
PHPではさまざまなキャストが用意されています。
| キャスト | 変換先 |
|---|---|
(int) |
整数型 |
(float) |
浮動小数点数型 |
(string) |
文字列型 |
(bool) |
真偽値型 |
(array) |
配列型 |
PHPの型変換では、整数型と浮動小数点数型が特によく利用されます。
初心者の方はまず、(int)と(float)の使い方を覚えると実践的なプログラムが作りやすくなります。
9. 型変換を使うときの注意点
PHPの型変換は便利ですが、注意点もあります。数字ではない文字列を変換すると0になる場合があります。また、小数を整数へ変換すると小数点以下が切り捨てられます。
例えば10.9を整数へ変換すると、結果は10になります。四捨五入ではなく切り捨てになる点に注意しましょう。
また、ユーザーが入力した値をそのまま計算に利用するのではなく、数値かどうか確認してから処理することも重要です。予期しないデータが入力された場合でも安全に処理できるようになります。
PHPの型変換とキャストは、文字列を数値へ変換して計算を行うための重要な機能です。フォーム入力、データベース処理、金額計算、在庫管理、会員管理など、多くのPHPプログラムで利用されます。初心者のうちに型変換の仕組みを理解しておくことで、より正確で分かりやすいPHPプログラムを書けるようになります。