はじめに
前回の記事では、PHPタグ・セミコロン・コメントという、コードを書くうえでの基本ルールを解説しました。
今回は、PHPでデータを扱う第一歩となる変数について解説します。前回のサンプルコードでも$priceや$subtotalのような書き方をさらっと使いましたが、今回はその意味と使い方をきちんと整理します。
変数とは?
変数とは、値を入れておく箱のようなものです。値に名前を付けておくことで、後からその名前を使って値を呼び出したり、計算に使ったりできます。
PHPでは、変数名の先頭に必ず$(ドルマーク)を付けます。
<?php
$name = "田中";
$age = 30;
echo $name; // 田中
echo $age; // 30$name = "田中";は、「$nameという変数に"田中"という値を代入する」という意味です。
VBAではDim name As Stringのように、変数を使う前に型を宣言する必要がありました。PHPではDimのような宣言は不要で、$変数名 = 値と書くだけでその場で変数が作られます。
変数名のルール
変数名は自由に付けられますが、次のルールがあります。
- 先頭は
$に続けて、英字またはアンダースコア(_)で始める(数字から始めるのはNG) - 2文字目以降は英字・数字・アンダースコアが使える
- 大文字と小文字は区別される(
$nameと$Nameは別の変数)
<?php
$userName = "佐藤"; // OK
$user_name = "佐藤"; // OK(スネークケース)
$1name = "佐藤"; // NG:数字から始まっている$1nameのように数字から始まる変数名は文法エラーになります。実行するとParse errorが表示されるので、変数名を修正してください。
命名の書き方には、$userNameのように単語の区切りを大文字にするキャメルケースと、$user_nameのようにアンダースコアで区切るスネークケースがあります。どちらでも動作しますが、1つのプロジェクト内では統一しておくと読みやすくなります。
変数の値を書き換える(再代入)
変数には、後から別の値を代入して書き換えることができます。
<?php
$score = 80;
echo $score; // 80
$score = 95;
echo $score; // 95同じ変数に対して=で新しい値を代入すると、古い値は上書きされます。
文字列の中に変数を埋め込む
文字列の中に変数の値を埋め込みたいとき、PHPではクォートの種類によって挙動が変わります。
ダブルクォート(”)は変数を展開する
<?php
$name = "鈴木";
echo "こんにちは、{$name}さん"; // こんにちは、鈴木さんダブルクォートで囲んだ文字列の中では、{$変数名}と書くとその変数の値に置き換えられます({}を省略して$nameとだけ書いても展開されますが、{}を付けておくと区切りがはっきりして読みやすくなります)。
シングルクォート(’)は変数を展開しない
<?php
$name = "鈴木";
echo 'こんにちは、{$name}さん'; // こんにちは、{$name}さんと表示されるシングルクォートで囲んだ場合は、{$name}がそのまま文字として表示され、変数の値には置き換わりません。
これまでの記事で使ってきたecho "小計:" . $subtotal . "円";のような、ピリオド(.)で文字列と変数をつなぐ書き方(文字列連結)も引き続き使えます。ダブルクォートでの変数展開と、ピリオドでの連結は、どちらも同じ結果を得られる別の書き方です。
実務サンプル(自己紹介文を組み立てる)
複数の変数を使って、自己紹介の文章を組み立ててみましょう。
<?php
$name = "山田";
$age = 28;
$job = "エンジニア";
echo "私の名前は{$name}です。年齢は{$age}歳で、職業は{$job}です。";実行結果は次のようになります。
私の名前は山田です。年齢は28歳で、職業はエンジニアです。
このように、あらかじめ用意した変数の値を文章の中に差し込むことで、内容の一部だけを変えたいときにも変数の値を書き換えるだけで済むようになります。
よくある質問・エラー対処
Q. Undefined variableという警告が出ます
→ まだ値を代入していない変数を使おうとしたときに表示されます。変数名のスペルミス(大文字・小文字の違いを含む)がないか確認してください。
Q. ダブルクォートとシングルクォート、どちらを使えばいいですか?
→ 変数を展開したい場合はダブルクォート、単なる固定の文字列であればシングルクォートを使うのが基本です。迷ったときは、変数を含まない文字列はシングルクォートで統一しておくと、意図しない展開を防げます。
Q. {}を付けずに$nameとだけ書いても展開されますか?
→ 単純な変数名であれば{}なしでも展開されます。ただし、変数名の直後に日本語や記号が続く場合など、区切りがあいまいになるケースでは{}を付けたほうが安全です。
おわりに(まとめ)
変数はPHPでデータを扱ううえで欠かせない基本要素です。
- ✅ 変数名は先頭に$を付け、英字またはアンダースコアで始める
- ✅ 大文字・小文字は区別される
- ✅ 同じ変数に再代入すると値は上書きされる
- ✅ ダブルクォートの文字列内では{$変数名}で値を展開できる
- ✅ シングルクォートの文字列内では変数は展開されない
次回は、変数に入る値の種類「データ型」について解説します。
次回は、文字列・数値・真偽値・NULLといったデータ型について解説予定です。
この記事が、少しでも誰かのお役に立てれば幸いです。
関連記事
当サイトの記事で使用したVBAなどのサンプルをDLできます
この記事のサンプルはありません!
ダウンロードページへは下のカードをクリックすればジャンプできます。
よろしければご利用ください!

