PHPの変数とは?初心者向けに宣言方法と代入の基本をわかりやすく解説
生徒
「プログラミングの勉強を始めたのですが、変数という言葉がよく出てきます。これって何のことですか?」
先生
「変数は、プログラムの中でデータを入れておくための箱のようなものです。PHPを学ぶ上で最も大切な基礎知識の一つですよ。」
生徒
「箱ですか?具体的にどうやって使えばいいんでしょうか。」
先生
「まずは名前の付け方や、箱の中にデータを入れる方法から順番に解説していきますね!」
1. 変数とはデータを保管する便利な箱
PHPのプログラムを書くとき、数値や文字などの情報を一時的に保存しておきたい場面が多々あります。その情報を入れておくための「入れ物」をプログラミング用語で変数(へんすう)と呼びます。
例えば、料理をするときに材料をボウルに入れておいたり、片付けのときに書類をフォルダにまとめたりしますよね。プログラミングにおける変数もそれと同じ役割を持っています。変数という箱に名前を付けておけば、後からその名前を呼ぶだけで、中身を取り出したり書き換えたりすることができるのです。
初心者のうちは、「変数 = データのあだ名」や「変数 = 値を入れるバケツ」というイメージを持つと分かりやすいでしょう。この仕組みがあるおかげで、同じデータを何度も入力する手間が省け、計算結果を保持して次の処理に活用することが可能になります。
2. PHPでの変数の宣言と書き方のルール
PHPで変数を使うには、まず「これは変数ですよ」とプログラムに教えてあげる必要があります。これを宣言(せんげん)と言います。PHPの変数には、初心者でも覚えやすい非常にシンプルなルールがあります。
PHPの変数は、必ず先頭に$(ドル記号)を付けます。このドル記号の後に、自分が好きな名前を付けていきます。例えば、名前を保存したいなら $name、年齢なら $age といった具合です。これを変数名と呼びます。
変数名を作るときには、いくつか決まりごとがあります。まず、英単語や数字、アンダースコア(_)を使うことができます。ただし、数字を先頭に使うことはできません。また、大文字と小文字は区別されるため、 $data と $Data は別の箱として扱われます。日本語も使えますが、プログラミングの世界では不具合を防ぐために英単語で付けるのが一般的なマナーです。
3. 代入の基本操作とイコールの本当の意味
変数という箱を作ったら、次はそこに値を入れます。この操作を代入(だいにゅう)と言います。代入には = (イコール)という記号を使います。
数学の世界ではイコールは「左右が等しい」という意味ですが、プログラミングの世界では「右側の値(データ)を左側の変数(箱)に入れる」という意味になります。向きが決まっているので注意しましょう。必ず左側に変数名を書き、右側に中身を書きます。
それでは、実際にコードを書いて確認してみましょう。以下の例では、変数に数値を代入して画面に表示させています。
$price = 1500;
echo $price;
実行結果は以下のようになります。
1500
このプログラムでは、まず $price という名前の箱に 1500 という数値を入れています。その後、 echo (エコー)という命令を使って、箱の中身を画面に出力しています。echo は画面に文字を表示するための非常に重要な命令語です。
4. 文字列を代入するときの注意点
変数には数値だけでなく、文字を入れることもできます。プログラミングでは文字の集まりを文字列(じょうれつ)と呼びます。文字列を変数に代入するときは、文字を ' ' (シングルクォーテーション)または " " (ダブルクォーテーション)で囲む必要があります。
もし囲むのを忘れてしまうと、PHPはそれを「あらかじめ決められた命令」や「別の変数」だと勘違いしてしまい、エラーが発生してプログラムが止まってしまいます。パソコンに「これは純粋な文字データだよ」と教えてあげるための印だと考えてください。
$greeting = "こんにちは、PHPの世界へ!";
$user_name = 'プログラミング初心者';
echo $greeting;
echo $user_name;
出力結果を確認してみましょう。
こんにちは、PHPの世界へ!プログラミング初心者
このように、数値と文字列では書き方が少し異なるということを覚えておきましょう。基本的には、計算に使うものはそのまま、名前やメッセージなどは引用符で囲む、という使い分けになります。
5. 変数の中身を上書きして更新する方法
変数の最大の特徴は、その名前の通り「中身が変わる(変わることができる)」点にあります。一度データを入れた変数に対して、後から別のデータを代入すると、古いデータは消えて新しいデータに置き換わります。これを上書きと言います。
プログラムは上から下へと順番に実行されます。そのため、同じ変数名に対して何度も代入を行った場合、最後に代入された値がその変数の最終的な中身となります。これを利用して、計算の途中の結果を更新していったり、ユーザーの入力に応じて表示内容を変えたりすることが可能になります。
$status = "準備中";
echo $status;
$status = "完了!";
echo $status;
実行結果は以下の通りです。
準備中完了!
最初は「準備中」と表示されますが、その後の処理で「完了!」という文字が変数 $status に上書きされたため、二度目の表示では新しい内容に変わっています。このように、変数は中身を自由に入れ替えられる柔軟な箱なのです。
6. 変数同士を使った計算とデータの活用
変数の本当の便利さは、変数同士を組み合わせて計算したり、文章を作ったりすることにあります。直接数値を使って計算するよりも、変数を使うことで「何のための数値なのか」が分かりやすくなり、後からの修正も簡単になります。
例えば、商品の単価と個数をそれぞれの変数に入れておけば、合計金額を計算するプログラムが非常に読みやすくなります。また、単価が変わったとしても、変数の宣言部分にある数値を一箇所変えるだけで、プログラム全体の計算結果を正しく修正できます。これを保守性(ほしゅせい)が高いと言います。
$apple_price = 200;
$quantity = 5;
$total = $apple_price * $quantity;
echo "リンゴの合計金額は ";
echo $total;
echo " 円です。";
実行結果は以下のようになります。
リンゴの合計金額は 1000 円です。
このコードでは、 * (アスタリスク)記号を使って掛け算を行っています。変数 $total には計算結果である 1000 が代入されます。直接 200 * 5 と書くよりも、意味が明確になり、プログラミング初心者でも内容が把握しやすくなります。
7. データ型を意識した変数の取り扱い
PHPでは変数を宣言するときに、中身が数値なのか文字なのかを厳密に指定する必要はありません。これを「動的型付け(どうてきかたづけ)」と呼び、初心者にとって非常に書きやすい特徴の一つです。しかし、コンピュータ内部では、データの種類(データ型)が区別されています。
主な種類としては、整数を扱う「整数型(integer)」、小数点を含む数値を扱う「浮動小数点型(float/double)」、文字を扱う「文字列型(string)」、そして「はい(真)」か「いいえ(偽)」の二択を扱う「論理型(boolean)」などがあります。
普段はあまり意識しなくてもPHPが自動で判断してくれますが、例えば「数字の 1」と「文字としての 1」は別物として扱われることがある、という点は頭の片隅に置いておくと良いでしょう。意図しない計算ミスを防ぐために、変数の型を調べる var_dump() という命令を使うこともあります。これはデバッグ(間違い探し)の際によく使われるテクニックです。
8. 変数名に使えるおすすめの命名規則
プログラミングを長く続けていくと、たくさんの変数を作るようになります。その際に適当な名前(例えば $a や $b など)を付けてしまうと、後で読み返したときに「この箱には何が入っているんだっけ?」と混乱してしまいます。そこで、意味のある名前を付けることが推奨されます。
世界中のエンジニアが使っている一般的なルールに「キャメルケース」と「スネークケース」があります。キャメルケースは $userName のように、単語の区切りを大文字にする方法です。スネークケースは $user_name のように、アンダースコアでつなぐ方法です。PHPではどちらも使われますが、大切なのは「一つのプログラムの中で書き方を統一すること」です。
分かりやすい変数名を付けることは、自分だけでなく他の人がプログラムを読む際の手助けにもなります。誰が見ても中身が想像できる、親切な名前を心がけましょう。例えば $data よりも $mail_address の方が、中身が何であるかは一目瞭然ですね。こうした工夫が、エラーの少ない綺麗なプログラムへの第一歩となります。
まとめ
PHPの基礎中の基礎である「変数」について、その役割から具体的な書き方、そして活用方法まで詳しく解説してきました。変数は、プログラム内で数値や文字列を一時的に保存しておくための「名前付きの箱」のような存在です。先頭に $ を付けるというPHP独自のルールや、 = 記号が「右から左へ代入する」という意味を持つことなど、初心者の方が最初につまずきやすいポイントもしっかり押さえられたのではないでしょうか。
変数を使いこなせるようになると、同じ値を何度も書く手間が省けるだけでなく、プログラムの途中で値を書き換えたり、計算結果を保持して次の処理に繋げたりといった複雑な動きが可能になります。また、 $apple_price や $user_name のように、中身がひと目でわかる名前を付ける「命名規則」を意識することで、コードの読みやすさ(可読性)が劇的に向上します。これは将来的に大規模なシステムを開発したり、チームで制作を行ったりする際に非常に重要なスキルとなります。
変数操作の総仕上げサンプルプログラム
これまでに学んだ「宣言」「代入」「上書き」「変数同士の計算」をすべて盛り込んだプログラムをおさらいしてみましょう。商品の購入シミュレーションを例に、変数がどのように動くかを確認してください。
// 1. 変数の宣言と代入
$item_name = "技術書(PHP入門)";
$price = 3000;
$quantity = 2;
$tax_rate = 0.1; // 消費税10パーセント
// 2. 変数を使った計算
$subtotal = $price * $quantity;
$tax_amount = $subtotal * $tax_rate;
$total_price = $subtotal + $tax_amount;
// 3. 結果の出力
echo "商品名:";
echo $item_name;
echo " / 合計金額:";
echo $total_price;
echo "円";
// 4. 変数の上書き(割引が適用された場合)
$discount = 500;
$total_price = $total_price - $discount;
echo " / 割引適用後:";
echo $total_price;
echo "円";
上記のコードを実行すると、以下のような結果が表示されます。
商品名:技術書(PHP入門) / 合計金額:6600円 / 割引適用後:6100円
このように、一度計算した $total_price に対して、後から割引分を差し引いて「上書き」することで、最新の状態を常に保持できるのが変数の強みです。数値だけでなく、 $item_name のように文字列を扱う際も、クォーテーションで囲むルールを忘れないようにしましょう。
ステップアップのためのアドバイス
変数の基本をマスターしたら、次は「データ型」の違いをより深く意識してみたり、複数のデータをまとめて管理できる「配列」の学習に進んでみるのがおすすめです。PHPは非常に柔軟な言語ですが、だからこそ「今、この変数には何が入っているのか?」を常に意識しながらコードを書く癖をつけることが、バグの少ないプログラミングへの近道となります。
今回紹介した echo による出力や var_dump() を使った中身の確認は、開発現場でも毎日使う必須のテクニックです。まずは自分の手で色々な変数名を作り、代入や計算を繰り返して、変数の挙動を体で覚えていきましょう。
生徒
「先生、ありがとうございました!変数が『データを入れる箱』だという意味が、サンプルコードを書いてみてやっと実感を伴って理解できました。」
先生
「それは良かったです!特に $total = $price * $quantity のように、変数同士で計算させる部分はプログラミングらしくて面白いでしょう?」
生徒
「はい!直接数字を計算するよりも、何をしているのかが言葉でわかるので読みやすいですね。でも、 = が等しいという意味じゃなくて『右から左へ入れる』というルールなのは、最初は少し戸惑いました。」
先生
「そうですね、そこは初心者が一番最初に驚くポイントかもしれません。でも、一度慣れてしまえば $a = $a + 1 のような、数学ではあり得ない式も『今の値に1を足して上書きするんだな』と自然に読めるようになりますよ。」
生徒
「なるほど、上書きですね!変数名の付け方も、キャメルケースやスネークケースなど、自分なりのルールを決めて分かりやすい名前を付けるように意識してみます。」
先生
「素晴らしい心がけです。綺麗な名前を付けることは、未来の自分へのプレゼントにもなりますからね。次は、この変数を使って条件によって処理を変える『条件分岐』についても学んでいきましょう!」
生徒
「はい、楽しみです!もっと色々なプログラムを組めるようになりたいので、頑張ります!」