カテゴリ: PHP 更新日: 2026/06/08

PHPの型変換(キャスト)まとめ!文字列を数値に変える方法と注意点

PHPの型変換(キャスト)まとめ!文字列を数値に変える方法と注意点
PHPの型変換(キャスト)まとめ!文字列を数値に変える方法と注意点

先生と生徒の会話形式で理解しよう

生徒

「PHPで、文字として入力された数字を計算に使うことはできますか?」

先生

「PHPでは、型変換やキャストを使うと、文字列を数値に変えることができます。」

生徒

「文字列と数値は違うものなんですか?」

先生

「はい。見た目が同じ数字でも、文字として扱う場合と、計算できる数値として扱う場合があります。」

生徒

「フォームから入力された値も関係ありますか?」

先生

「もちろんです。PHPのフォーム入力では文字列として受け取ることが多いので、型変換はとても重要です。それでは詳しく見ていきましょう。」

1. PHPの型変換とは?

1. PHPの型変換とは?
1. PHPの型変換とは?

PHPの型変換とは、データ型を別のデータ型へ変更することです。PHPには文字列型、整数型、浮動小数点数型、真偽値型、配列型などのデータ型があります。データ型とは、変数に保存されているデータの種類のことです。

例えば、"100"は数字に見えますが、ダブルクォーテーションで囲まれているため文字列型です。一方で100は整数型です。見た目は似ていますが、PHP内部では異なる種類のデータとして扱われています。

プログラミング初心者の方は、文字列を紙に書かれた数字、数値を電卓で計算できる数字と考えると理解しやすいでしょう。紙に書かれた数字は見えるだけですが、電卓に入力すると計算できます。PHPでも文字列を数値へ変換することで計算できるようになります。

PHPのWebアプリケーション開発では、フォーム入力、商品価格の計算、在庫数の管理、注文数の集計など、多くの場面で型変換が利用されます。そのため、PHP初心者が最初に覚えておきたい重要な知識の1つです。

2. キャストとは?

2. キャストとは?
2. キャストとは?

キャストとは、プログラマーが明示的にデータ型を変更する方法です。明示的とは、自分で分かるように明確に指定するという意味です。

PHPでは、変数の前に(int)(float)などを書くことで、型変換を行えます。これをキャストと呼びます。


$price = "1000";

$number = (int)$price;

echo $number;

1000

この例では、文字列型の"1000"を整数型へ変換しています。PHPのキャストを使うことで、データ型を意識しながら安全にプログラムを書くことができます。

PHPの実務では、フォーム入力値の計算やデータベースから取得した値の処理でキャストを使うことがよくあります。

3. 文字列を整数に変換する方法

3. 文字列を整数に変換する方法
3. 文字列を整数に変換する方法

PHPで文字列を整数へ変換する場合は、(int)を使用します。整数とは小数点を含まない数値です。

商品数や注文数、会員IDなど、小数を使わないデータを扱う場合に利用されます。


$count = "5";

$total = (int)$count * 100;

echo $total;

500

この例では、文字列の"5"を整数へ変換し、100を掛けています。結果は500になります。

PHPでは自動的に型変換されることもありますが、初心者のうちは(int)を使って型変換していることを明確に書いたほうが理解しやすくなります。

4. 文字列を小数に変換する方法

4. 文字列を小数に変換する方法
4. 文字列を小数に変換する方法

小数を扱いたい場合は、(float)を使用します。浮動小数点数型とも呼ばれます。

税率、平均点、割引率、身長、体重など、小数を含む値を扱う場合によく利用されます。


$rate = "1.08";

$result = (float)$rate * 1000;

echo $result;

1080

この例では、文字列型の"1.08"を小数へ変換し、1000を掛けています。

PHPのショッピングサイトや業務システムでは、消費税計算や割引計算などで浮動小数点数型が利用されることが多くあります。

5. 型変換される前後を確認する方法

5. 型変換される前後を確認する方法
5. 型変換される前後を確認する方法

PHPでは、var_dump()を使うことで変数の型を確認できます。

型変換の学習では、実際に変換前と変換後を確認すると理解しやすくなります。


$value = "100";

var_dump($value);

$value = (int)$value;

var_dump($value);

string(3) "100"
int(100)

最初は文字列型として表示されていますが、キャスト後は整数型へ変換されていることが確認できます。

PHP初心者は、変数の中身が思った通りになっているか確認するために、var_dump()を積極的に利用するとよいでしょう。

6. 数字以外の文字が含まれている場合

6. 数字以外の文字が含まれている場合
6. 数字以外の文字が含まれている場合

PHPでは、文字列の先頭に数字がある場合、その部分だけを数値として変換することがあります。


$value = "123abc";

echo (int)$value;

123

この場合は先頭の123だけが数値として扱われます。


$value = "abc123";

echo (int)$value;

0

今度は文字から始まっているため、数値へ変換できず0になります。

PHPの型変換では、このような挙動を理解しておかないと計算結果が想定と異なる場合があります。

7. フォーム入力で型変換が必要な理由

7. フォーム入力で型変換が必要な理由
7. フォーム入力で型変換が必要な理由

PHPのフォーム処理では、入力された値は基本的に文字列型として受け取ります。

年齢入力欄に20と入力しても、PHPでは文字列として受け取られます。そのため、年齢計算や料金計算を行う場合は型変換が必要です。


$age = "20";

$nextYear = (int)$age + 1;

echo $nextYear;

21

このようにキャストすることで、正しく数値計算を行えます。

PHPの会員登録画面や注文フォームでは、型変換は非常によく使われる処理です。

8. PHPの主なキャスト一覧

8. PHPの主なキャスト一覧
8. PHPの主なキャスト一覧

PHPではさまざまなキャストが用意されています。

キャスト 変換先
(int) 整数型
(float) 浮動小数点数型
(string) 文字列型
(bool) 真偽値型
(array) 配列型

PHPの型変換では、整数型と浮動小数点数型が特によく利用されます。

初心者の方はまず、(int)(float)の使い方を覚えると実践的なプログラムが作りやすくなります。

9. 型変換を使うときの注意点

9. 型変換を使うときの注意点
9. 型変換を使うときの注意点

PHPの型変換は便利ですが、注意点もあります。数字ではない文字列を変換すると0になる場合があります。また、小数を整数へ変換すると小数点以下が切り捨てられます。

例えば10.9を整数へ変換すると、結果は10になります。四捨五入ではなく切り捨てになる点に注意しましょう。

また、ユーザーが入力した値をそのまま計算に利用するのではなく、数値かどうか確認してから処理することも重要です。予期しないデータが入力された場合でも安全に処理できるようになります。

PHPの型変換とキャストは、文字列を数値へ変換して計算を行うための重要な機能です。フォーム入力、データベース処理、金額計算、在庫管理、会員管理など、多くのPHPプログラムで利用されます。初心者のうちに型変換の仕組みを理解しておくことで、より正確で分かりやすいPHPプログラムを書けるようになります。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelのルーティングでサブドメインを使う方法!初心者向けにやさしく解説
New2
Laravel
Laravelでマルチ言語ルートを設定する方法!ロケールごとのprefixで簡単管理
New4
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのインストール方法まとめ!ComposerとLaravel Installerの使い方
No.2
Java&Spring記事人気No2
Symfony
SymfonyのRemember Me機能を完全解説!初心者でもわかるログイン保持の仕組み
No.3
Java&Spring記事人気No3
Laravel
Laravelでルートに中間処理を追加する方法!ミドルウェア活用ガイド
No.4
Java&Spring記事人気No4
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.5
Java&Spring記事人気No5
Laravel
Laravelでドメインルートを使う方法!マルチドメイン対応を初心者向けに解説
No.6
Java&Spring記事人気No6
Laravel
LaravelのFeatureテストとUnitテストの違いを理解しよう
No.7
Java&Spring記事人気No7
CodeIgniter
CodeIgniterで多言語対応(Language)を徹底解説!言語切り替え機能を実装
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterでファイルアップロードとストレージ管理をマスター!初心者向け完全ガイド