【PHP】Lesson1-2:変数・定数・nullを基礎から学ぼう

プログラムを書くうえで重要な要素である「変数」と「定数」、そして特殊な値「null」を理解することは、PHPを学ぶ最初のステップとして欠かせません。
本記事では、それぞれの基本概念と使い方を初心者向けにわかりやすく解説します。
Lesson1:基礎文法編
・Lesson1-1:PHP学習の入り口|初めてコードを書いてみよう
・Lesson1-2:変数と定数を理解しよう ◁今回はココ
・Lesson1-3:データ型とキャストを理解しよう
・Lesson1-4:四則演算をしよう
・Lesson1-5:文字列を理解しよう
・Lesson1-6:文字列の連結と埋め込みを理解しよう
・Lesson1-7:乱数を生成しよう
・確認問題1-1:ランダムパスワードを生成しよう
Lesson2:制御構造編
Lesson3:関数編
Lesson4:データ構造編
Lesson5:クラス編
変数と定数の違いとは?初心者向けに図解で解説

変数とは、プログラム中で値を一時的に保存するための「箱」のようなものです。
変数の中身(値)は変更可能であり、数値や文字列などの異なるデータを格納できます。
定数は名前の通り「一定の値」を保持するもので、一度定義すると変更することはできません。
プログラム内で不変のデータを扱う場合に利用します。
PHP変数の使い方|構文と使用例を紹介
PHPの変数はドル記号($
)を使って定義します。
<?php // 変数の宣言と値の代入 $greeting = "こんにちは"; // $greetingという名前の変数を定義し、「こんにちは」を代入 $number = 42; // $numberという名前の変数を定義し、「42」を代入 // 変数の使用 echo $greeting . PHP_EOL; // 出力: こんにちは echo $number . PHP_EOL; // 出力: 42 // 値の再代入 $greeting = "おはようございます"; echo $greeting; // 出力: おはようございます
- 変数名はドル記号で始め、英数字やアンダースコアを使えます。
- 変数の値は自由に変更できます。
PHP定数の使い方|変更できない値の定義方法
定数はdefine()
関数やconst
キーワードで宣言します。
<?php // define()による定数の宣言 define("SITE_NAME", "PHP学習サイト"); // SITE_NAMEという名前の定数を定義し、「PHP学習サイト」を代入 echo SITE_NAME . PHP_EOL; // 出力: PHP学習サイト // constによる定数の宣言 const PI = 3.14; // PIという名前の定数を定義し、「3.14」を代入 echo PI . PHP_EOL; // 出力: 3.14 // 定数は変更できない // SITE_NAME = "新しい名前"; // エラーになります
- 定数は一度宣言したら値を変更できません。
- 定数名は通常、大文字で記述します。
- 定数はプログラム全体で使えます(グローバルスコープ)。
nullの使い方|値が「ない」状態を扱う方法
null
は「値がないこと」を意味します。
変数を明示的に初期化したいときや、値が未定義であることを示す場合に使用されます。
<?php // nullの使用例 $var = null; echo "この変数はnullです。" . PHP_EOL; // nullから値を再設定 $var = 100; echo $var; // 出力: 100
nullは「値が存在しない」ことを明示します。
PHP変数・定数・nullの使い分けをまとめよう
PHPの「変数」「定数」「null」はそれぞれ異なる用途で使われます。
変数は動的に値を変更したい場合、定数は不変のデータを扱いたい場合に使用します。
一方nullは「まだ値が設定されていない」または「意図的に空にする」ために役立ちます。
これらの違いを理解することで、PHPで効率的なコードを書く基礎を築けるでしょう。
演習問題|変数と定数を使った自己紹介プログラムを作ろう

PHPで「変数」と「定数」を使って自己紹介プログラムを作成しましょう。
このプログラムでは定数に挨拶メッセージを格納し、それを出力します。
また変数に名前と年齢を格納し、それらを固定文字列と組み合わせて出力します。
この演習の要件
以下の要件に従ってコードを完成させてください。
- 定数を定義し、その値を出力すること
- 定数
GREETING
に「こんにちは!PHPの練習を始めましょう。」という文字列を格納すること。 echo
を使用してGREETING
の値を出力すること。
- 定数
- 変数を定義して値を出力すること
- 変数
$name
に名前(例: “太郎”)を格納すること。 - 変数
$age
に年齢(例: “20”)を格納すること。 $name
を使って「私の名前は 太郎 です。」と出力すること。$age
を使って「私は 20 歳です。」と出力すること。
- 変数
- コードは以下のような出力を行うこと
- 「こんにちは!PHPの練習を始めましょう。」
- 「私の名前は 太郎 です。」
- 「私は 20 歳です。」
ただし、以下のような実行結果となること。
こんにちは!PHPの練習を始めましょう。 私の名前は 太郎 です。 私は 20 歳です。
解き方のヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:定数GREETINGの定義と初期化
2:定数GREETINGの値を出力(PHP_EOLで改行を追加)
3:変数$nameに文字列”太郎”を代入
4:変数$ageに文字列”20″を代入
5:「私の名前は 」という固定文字列を出力
6:変数$nameの値を出力
7:「 です。」という固定文字列を出力(PHP_EOLで改行を追加)
8:「私は 」という固定文字列を出力
9:変数$ageの値を出力
10:「 歳です。」という固定文字列を出力(PHP_EOLで改行を追加)
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
<?php // 定数の定義(定数は一度定義すると値を変更できません) /* 【穴埋め問題1】 ここでGREETINGという定数を定義し、「こんにちは!PHPの練習を始めましょう。」という値を代入してください。 */ // 定数の使用 echo GREETING . PHP_EOL; // 定数の値を出力 // 変数の定義と値の代入(変数は値を変更可能です) /* 【穴埋め問題2】 ここで$nameという変数に"太郎"という値を代入してください。 */ /* 【穴埋め問題3】 ここで$ageという変数に"20"という値を代入してください。 */ // 変数の使用 echo "私の名前は "; // 固定文字列の出力 echo $name; // 変数の値を出力 echo " です。" . PHP_EOL; // 固定文字列の出力 echo "私は "; // 固定文字列の出力 echo $age; // 変数の値を出力 echo " 歳です。" . PHP_EOL; // 固定文字列の出力
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
演習問題の答え合わせ
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
<?php // 定数の定義(定数は一度定義すると値を変更できません) const GREETING = "こんにちは!PHPの練習を始めましょう。"; // 定数の使用 echo GREETING . PHP_EOL; // 定数の値を出力 // 変数の定義と値の代入(変数は値を変更可能です) $name = "太郎"; // 名前を格納する変数 $age = "20"; // 年齢を格納する変数 // 変数の使用 echo "私の名前は "; // 固定文字列の出力 echo $name; // 変数の値を出力 echo " です。" . PHP_EOL; // 固定文字列の出力 echo "私は "; // 固定文字列の出力 echo $age; // 変数の値を出力 echo " 歳です。" . PHP_EOL; // 固定文字列の出力
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
定数の定義と使用
const GREETING = "こんにちは!PHPの練習を始めましょう。"; echo GREETING . PHP_EOL;
const
を使った定数の定義
定数GREETING
を定義しています。ここでは「こんにちは!PHPの練習を始めましょう。」という文字列が格納されています。- 定数の使用
echo
を使って定数GREETING
の値を出力しています。PHP_EOL
は「PHP End Of Line」の略で改行を意味します。
変数の定義と使用
$name = "太郎"; $age = "20"; echo "私の名前は "; echo $name; echo " です。" . PHP_EOL; echo "私は "; echo $age; echo " 歳です。" . PHP_EOL;
- 変数の定義
$name
は名前を格納する変数です。ここでは「太郎」という文字列を代入しています。$age
は年齢を格納する変数です。ここでは「20」という文字列を代入しています。
- 変数の使用
echo
を使って固定文字列と変数の値を連続して出力しています。例えば、「私の名前は 太郎 です。」というメッセージを作成する際には、echo
を使って固定文字列と変数$name
を個別に出力しています。
まとめ
このコードでは、PHPの「変数」と「定数」の使い方を学びました。特に以下のポイントに注目してください:
- 定数の定義と使用方法: 定数はプログラム内で変更できない値を保持するために使用します。
- 変数の定義と変更可能な値の格納: 変数は変更可能なデータを保持するために使用します。
プログラムを書くことで、データを整理して管理する基本的なスキルを学ぶことができます。
ぜひ、このコードを元に別の定数や変数を定義して練習を進めてください!