PHPで変数の型を調べるgettype()とvar_dump()の使い方と違い
生徒
「PHPで変数の中身が文字なのか数字なのか調べる方法はありますか?」
先生
「あります。PHPではgettype()やvar_dump()を使うと、変数の型や中身を確認できます。」
生徒
「型というのは何ですか?」
先生
「型とは、データの種類のことです。文字列、整数、小数、配列など、PHPがデータを扱うための分類です。」
生徒
「gettypeとvar_dumpはどちらを使えばいいですか?」
先生
「型名だけを知りたいならgettype、中身まで詳しく確認したいならvar_dumpが便利です。順番に見ていきましょう。」
1. PHPの型とは?
PHPの型とは、変数に入っているデータの種類を表すものです。プログラミング未経験の方には少し難しく感じるかもしれませんが、日常生活で考えると分かりやすくなります。例えば、名前は文字、年齢は数値、商品の一覧は複数の情報の集まりです。このように、データにはそれぞれ種類があります。
PHPでは、文字列を表すstring、整数を表すinteger、小数を表すdouble、真か偽を表すboolean、複数の値をまとめるarrayなどがあります。型を理解すると、PHPの変数、データ型、入力チェック、エラー確認、デバッグ作業が分かりやすくなります。
変数とは、データを一時的に入れておく箱のようなものです。その箱の中に何が入っているのかを調べるために、gettype()やvar_dump()を使います。PHP初心者がプログラムの動きを確認するときに、とても役立つ基本機能です。
2. gettype()とは?
gettype()は、変数の型名を調べるためのPHP関数です。関数とは、あらかじめ用意された便利な命令のことです。gettypeを使うと、変数に入っているデータが文字列なのか、整数なのか、配列なのかを文字として確認できます。
gettypeは、型だけをシンプルに知りたいときに便利です。例えば、プログラムの途中で「この変数は本当に数値として扱われているのか」「フォームから受け取った値は文字列なのか」を確認したい場合に使えます。
$name = "田中";
echo gettype($name);
実行結果
string
この例では、変数$nameに文字列が入っているため、実行結果はstringになります。stringは文字列という意味です。PHPで名前、住所、メールアドレス、商品名などを扱うときによく使われる型です。
3. gettype()で数値や小数の型を確認する
gettypeは文字列だけでなく、整数や小数の型も調べることができます。整数とは小数点のない数値のことで、年齢、数量、件数、在庫数などに使われます。小数とは小数点を含む数値のことで、割合、平均、評価点、消費税率などに使われます。
$age = 25;
$rate = 3.5;
echo gettype($age);
echo "\n";
echo gettype($rate);
実行結果
integer
double
$ageは整数なのでinteger、$rateは小数なのでdoubleと表示されます。PHPでは小数の型名としてdoubleと表示されます。初心者のうちは、小数はdoubleと表示されると覚えておくと安心です。
Webアプリケーションでは、商品価格、注文数、ポイント数、会員番号などを扱う場面が多くあります。数値として扱うつもりだった値が文字列になっていると、計算や比較で思わぬ結果になることがあります。そのため、型を確認することはPHPプログラミングの基本です。
4. var_dump()とは?
var_dump()は、変数の型と中身を詳しく表示するPHP関数です。gettypeは型名だけを表示しますが、var_dumpは型、文字数、値などをまとめて確認できます。PHP初心者がデバッグをするときに非常によく使う関数です。
デバッグとは、プログラムの間違いや原因を探す作業のことです。プログラムが思った通りに動かないとき、変数の中に何が入っているのかを確認すると原因を見つけやすくなります。
$message = "こんにちは";
var_dump($message);
実行結果
string(15) "こんにちは"
実行結果のstringは文字列型を表します。かっこの中の数字は文字列の長さを表します。日本語は環境によってバイト数で表示されるため、見た目の文字数と異なる場合があります。最後のこんにちはが実際に変数へ入っている値です。
5. var_dump()で配列の中身を確認する
var_dumpは配列の確認にも便利です。配列とは、複数のデータをまとめて入れられる箱のような仕組みです。商品一覧、会員一覧、カテゴリ一覧、検索結果など、PHPのWeb開発では配列がよく使われます。
$fruits = ["りんご", "みかん", "ぶどう"];
var_dump($fruits);
実行結果
array(3) {
[0]=>
string(9) "りんご"
[1]=>
string(9) "みかん"
[2]=>
string(9) "ぶどう"
}
実行結果では、配列の中に三つのデータが入っていることが分かります。array(3)は、配列の要素が三つあるという意味です。要素とは、配列の中に入っている一つ一つのデータのことです。
PHPでデータベースから複数件の情報を取得したときや、フォームから複数の入力値を受け取ったときは、配列として扱うことがあります。そのような場面では、var_dumpを使うことでデータの構造を確認できます。
6. gettype()とvar_dump()の違い
gettypeとvar_dumpはどちらも変数の型を調べるために使えますが、目的が少し違います。gettypeは型名だけを知りたいときに使います。var_dumpは型だけでなく、値や配列の中身まで詳しく確認したいときに使います。
| 比較項目 | gettype() | var_dump() |
|---|---|---|
| 確認できる内容 | 型名 | 型と値と詳しい中身 |
| 表示の分かりやすさ | 短くて見やすい | 詳しいが長くなる |
| 初心者向けの使い方 | 型だけ確認したいとき | エラー原因を調べたいとき |
| 配列確認 | 配列かどうかだけ分かる | 配列の中身まで分かる |
例えば、変数が文字列か整数かだけを確認したい場合はgettypeで十分です。一方で、配列の中にどのような値が入っているか、数値が文字列として入っていないか、フォームから送信されたデータが正しく入っているかを確認したい場合はvar_dumpが便利です。
7. フォーム入力値を確認するときの考え方
PHPでは、お問い合わせフォーム、会員登録フォーム、ログイン画面、商品注文画面などから送信された値を扱うことがあります。ここで注意したいのは、入力フォームから送られてくる値は、数字に見えても文字列として扱われることが多いという点です。
$price = "1200";
echo gettype($price);
echo "\n";
var_dump($price);
実行結果
string
string(4) "1200"
見た目は数字の千二百ですが、ダブルクォーテーションで囲まれているため文字列です。PHPではこのように、見た目だけでは型を判断しにくいことがあります。
そのため、入力チェックや計算処理を行う前に、gettypeやvar_dumpで変数の状態を確認すると安心です。特に初心者のうちは、エラーが出たときにすぐコードを書き換えるのではなく、まず変数の型と中身を確認する習慣をつけることが大切です。
8. var_dump()を見やすく表示する方法
var_dumpの結果は詳しい反面、ブラウザ上では改行が分かりにくくなることがあります。その場合はHTMLのpreタグを使うと、改行や空白が見やすく表示されます。preタグは、入力した文字の並びをできるだけそのまま表示するためのHTMLタグです。
$user = [
"name" => "田中",
"age" => 25
];
echo "<pre>";
var_dump($user);
echo "</pre>";
実行結果
array(2) {
["name"]=>
string(6) "田中"
["age"]=>
int(25)
}
配列や連想配列を確認するときは、このようにpreタグとvar_dumpを組み合わせると読みやすくなります。連想配列とは、番号ではなく名前を付けてデータを管理する配列です。会員情報や商品情報のように、項目名と値をセットで管理したいときに使われます。
9. gettype()とvar_dump()を使うときの注意点
gettypeやvar_dumpは学習中や開発中の確認にとても便利ですが、公開しているWebサイトの画面にそのまま表示し続けるのは避けましょう。理由は、変数の中身やシステムの内部情報が利用者に見えてしまう可能性があるためです。
例えば、会員情報、注文情報、管理画面のデータなどをvar_dumpで表示したままにすると、見せてはいけない情報まで画面に出てしまうことがあります。PHPの学習中は問題ありませんが、実際のWebアプリケーションでは確認が終わったら削除することが大切です。
PHP初心者が型を調べるときは、型名だけを確認したいならgettype、詳しい中身を確認したいならvar_dumpと使い分けましょう。変数の型と中身を確認できるようになると、PHPのデータ型、変数、配列、フォーム処理、デバッグの理解が深まります。
PHPで変数の型を調べるときは、gettypeは型名の確認、var_dumpは詳しい中身の確認に使うと覚えると分かりやすいです。