こんにちは、かつコーチです。
環境構築が終わったところで、いよいよPHPのコードの中身に入っていきます。
今回のテーマは「変数」です。
プログラミングの土台になる部分なので、ここでしっかり理解しておきましょう。
変数とは?
データを入れておく箱
変数とは、データを入れておく箱のようなものです。
名前をつけた箱にデータを入れておき、後からその名前を使って中身を取り出したり書き換えたりできます。
PHPでは、変数名の前に必ず $(ドル記号)をつけます。
これがPHPの大きな特徴のひとつです。
<?php
$name = "かつコーチ";
$age = 30;
echo $name; // かつコーチ
echo $age; // 30
?>
$name という箱に "かつコーチ" という文字列を、$age という箱に 30 という数値を入れています。
他の言語(JavaScriptなど)では $ をつけない書き方が主流なので、PHPを初めて触る人は「なんで $ がいるの?」と思うかもしれません。
そういう文法なんだと割り切ってしまってOKです。
変数の命名ルール
変数名には、いくつかルールがあります。
- 先頭は英字かアンダースコア(
_)にする(数字から始めるとエラーになる) - 英数字とアンダースコアが使える(記号やスペースは使えない)
- 大文字・小文字は区別される(
$Nameと$nameは別の変数)
<?php
$user_name = "田中"; // OK(アンダースコア区切り)
$userName = "田中"; // OK(キャメルケース)
// $1user = "田中"; // NG:数字から始められない
?>
チーム開発をする場合は、命名ルールを統一しておくとコードが読みやすくなります。
私はPHPでは $user_name のようなスネークケース(アンダースコア区切り)で書くことが多いです。
命名の良し悪しをBefore/Afterで比較する
❌ Before:何を表しているかわからない変数名
<?php
$a = "田中太郎";
$b = 30;
$c = true;
echo $a . "さん(" . $b . "歳)は会員" . ($c ? "です" : "ではありません");
?>
$a $b $c だけでは、後で読み返したときに「何のデータだっけ?」となってしまいます。
特に長いコードになるほど、この読みにくさが致命的になります。
✅ After:中身がわかる変数名
<?php
$user_name = "田中太郎";
$user_age = 30;
$is_member = true;
echo $user_name . "さん(" . $user_age . "歳)は会員" . ($is_member ? "です" : "ではありません");
?>
変数名を見ただけで「ユーザー名」「年齢」「会員かどうか」という意味が伝わります。
多少長くなっても、意味が明確な名前をつけることを優先しましょう。
PHPの主なデータ型
データ型の一覧
PHPは、変数を宣言するときに「これは文字列です」「これは数値です」といった型の指定をしなくてよい言語です(これを動的型付けと言います)。
とはいえ、データ型そのものは存在するので、代表的なものを紹介します。
| データ型 | 説明 | 例 |
|---|---|---|
| 文字列(string) | 文字の並び | "こんにちは" |
| 整数(int) | 小数点のない数値 | 30 |
| 浮動小数点数(float) | 小数点のある数値 | 3.14 |
| 真偽値(bool) | true か false のどちらか | true |
| 配列(array) | 複数のデータをまとめたもの | [1, 2, 3] |
| NULL | 値が存在しないことを表す | null |
型を確認する方法
型を確認したいときは、var_dump() という関数を使うと便利です。
<?php
$price = 1980;
var_dump($price);
// 出力: int(1980)
?>
var_dump() は、値だけでなく型も一緒に表示してくれるので、デバッグの際によく使います。
学習中は「今この変数は何の型になっているんだろう?」と迷ったら、とりあえず var_dump() してみる癖をつけると理解が早まります。
つまずきやすいポイント:文字列と数値の自動変換
暗黙の型変換とは
PHPは型に緩い言語なので、次のような書き方も動いてしまいます。
<?php
$a = "10"; // 文字列の "10"
$b = 5; // 数値の 5
echo $a + $b; // 結果: 15
?>
"10" は文字列なのに、数値の 5 と足し算すると、自動的に数値として扱われて 15 になります。
これはPHPの便利なところでもあり、私が学習し始めた頃に一番混乱したポイントでもあります。
「あれ、なんで文字列と数値を足せるんだろう?」と。
慣れないうちは、「PHPは状況に応じて型をよしなに変換してくれる」とだけ覚えておいて、慣れてきたら (int) や (string) を使った明示的な型変換(キャスト)も使えるようにしていくと、意図しないバグを防ぎやすくなります。
キャストのBefore/After
❌ Before:型変換を暗黙に任せてしまう
<?php
$price = "1000円";
echo $price + 500; // Warning: A non-numeric value encountered
?>
"1000円" は「円」という文字が混ざっているため数値として解釈できず、意図しない警告やエラーの原因になります。
✅ After:数値部分だけを明示的に取り出して計算する
<?php
$price = "1000";
echo (int)$price + 500; // 1500
?>
キャストを使って明示的に型を揃えておくことで、コードを読む人にも「ここは数値として扱っている」という意図が伝わりますし、思わぬエラーも防げます。
まとめ
この記事のポイント
- 変数は「データを入れる箱」で、PHPでは変数名の頭に必ず
$をつける - 変数名は中身がわかる名前にする(
$aより$user_name) - PHPは型を宣言しなくても使える動的型付け言語
- 文字列と数値が自動で変換されることがあるので、意図しない挙動には注意する
次に読むべき記事
変数の扱いに慣れたら、次はその変数を使って「条件によって処理を変える」書き方を学んでいきます。
→ 次の記事:PHPのif文・switch文で条件分岐を書く方法