カテゴリ: PHP 更新日: 2026/03/09

PHPの真偽値と条件判定をやさしく解説!初心者でもわかるempty・isset・is_nullの使い方

PHP の真偽値と条件判定(empty, isset, is_null)
PHP の真偽値と条件判定(empty, isset, is_null)

先生と生徒の会話形式で理解しよう

生徒

「PHPで値があるかどうかを調べる方法ってありますか?」

先生

「はい、PHPではemptyissetis_nullという関数を使って、値の有無や状態を調べることができますよ。」

生徒

「それぞれどう違うんですか? 何を使えばいいのか迷いそうです…」

先生

「それでは順番に、分かりやすく丁寧に見ていきましょう!」

1. 真偽値(しんぎち)とは?条件判定の基本をマスター

1. 真偽値(しんぎち)とは?条件判定の基本をマスター
1. 真偽値(しんぎち)とは?条件判定の基本をマスター

PHPをはじめ、プログラミングの世界でプログラムに「判断」をさせるために欠かせないのが真偽値(しんぎち)です。

真偽値とは、ある条件が成り立っているかどうかを表す「true(真:はい)」「false(偽:いいえ)」という2つの値だけを持つデータ型(boolean型)のことです。私たちの日常でも、無意識のうちにこの真偽値を使って判断をしています。

日常生活のイメージ:
  • 「外は雨が降っていますか?」 → 降っていれば true、止んでいれば false
  • 「信号は青ですか?」 → 青なら true、赤や黄色なら false

PHPでは、この「true」か「false」の結果によって、次に実行する処理を切り替えることができます。これを「条件分岐」と呼びます。まずは簡単なサンプルコードで、真偽値がどのように扱われるか見てみましょう。


// 変数に「正しい」という状態(真偽値)を代入します
$is_sunny = true;

// もし $is_sunny が true だったら実行する
if ($is_sunny) {
    echo "今日はいい天気ですね!洗濯物を干しましょう。";
}

このプログラムでは、変数 $is_sunnytrue が入っているため、「今日はいい天気ですね!」というメッセージが表示されます。もしここが false だった場合は、何も表示されません。

「このデータは空かな?」「ユーザーはログインしているかな?」といったチェックはすべて、最終的にこの truefalse に変換されて判定されます。これから紹介する関数も、すべてこの真偽値を返してくれる便利なツールなのです。

2. empty関数とは?

2. empty関数とは?
2. empty関数とは?

empty(エンプティ)関数は、「値が空っぽかどうか」を調べるための関数です。

「空っぽ」とは、次のような状態です:

  • 空文字列("")
  • 数字のゼロ(0)
  • 文字のゼロ("0")
  • NULL(ヌル)
  • 空の配列
  • 未定義の変数

つまり、「中身があるかないかをざっくりチェックしたい」ときに使えます。


$value = "";
if (empty($value)) {
    echo "値が空です。";
}

値が空です。

注意点: emptyは、変数が定義されていなくてもエラーになりません。とてもやさしい関数です。

3. isset関数とは?

3. isset関数とは?
3. isset関数とは?

isset(イセット)関数は、「変数が存在していて、なおかつNULLでないか」をチェックする関数です。

存在している=定義されていて、NULLじゃない、という状態です。


$name = "太郎";
if (isset($name)) {
    echo "名前は設定されています。";
}

名前は設定されています。

このように、issetは「その変数はある?」と確認するときに使います。emptyより厳密なチェックです。

ちなみに、NULLの場合はfalseになります:


$test = null;
if (isset($test)) {
    echo "ある";
} else {
    echo "ない";
}

ない

4. is_null関数とは?

4. is_null関数とは?
4. is_null関数とは?

is_null(イズ・ヌル)関数は、「その変数がNULLかどうか」を調べるための関数です。

NULLとは、「何も入っていない特別な状態」を意味します。値が空でもなく、ゼロでもなく、「存在はしてるけど中身はない」状態です。


$value = null;
if (is_null($value)) {
    echo "値はNULLです。";
}

値はNULLです。

issetis_nullは、セットで使うことも多いです。違いを理解しておくと便利です。

5. empty・isset・is_nullの違いを表で整理

5. empty・isset・is_nullの違いを表で整理
5. empty・isset・is_nullの違いを表で整理

それぞれの違いを分かりやすく表でまとめました。

チェック内容 empty isset is_null
変数が存在しない場合 true false エラー
NULLの場合 true false true
空文字("") true true false
数字の0 true true false
値がある文字 false true false

使い分けの目安は次のとおりです:

  • ざっくり空かどうか確認 → empty
  • 変数があるかどうか確認 → isset
  • NULLかどうかだけ確認 → is_null

6. 実際に使う場面はどんなとき?

6. 実際に使う場面はどんなとき?
6. 実際に使う場面はどんなとき?

PHPのWebサイトやアプリでは、ユーザーが入力した情報がちゃんとあるか、間違っていないかを確認するときに、emptyissetがよく使われます。

例えば、お問い合わせフォームの「名前」が入力されているかどうかを確認するには、次のように書きます:


if (empty($_POST['name'])) {
    echo "名前を入力してください。";
}

このように、「入力チェック」「データチェック」「バグ防止」など、あらゆる場面で真偽値や条件判定は活躍します。

7. 条件分岐(if文)との組み合わせが基本

7. 条件分岐(if文)との組み合わせが基本
7. 条件分岐(if文)との組み合わせが基本

真偽値は、if文(イフぶん)と一緒に使うのが基本です。「もし◯◯だったら、〜する」という命令を実現するためのしくみです。

以下のように書くことで、emptyなどと連携して動作を制御できます。


if (!empty($email)) {
    echo "メールアドレスが入力されています。";
} else {
    echo "メールアドレスを入力してください。";
}

このように、条件によって表示内容を変えられるようになると、PHPの幅が一気に広がります。

まとめ

まとめ
まとめ

PHPで値の有無や状態を確実に判断するための考え方

ここまで学んできたように、PHPのempty、isset、is_nullはとてもよく似ているようでいて、それぞれまったく違う役割を持っています。真偽値という基本的な考え方を理解しながら、値があるのか、変数が存在しているのか、NULLという特別な状態なのかを判断することで、Webフォームの入力チェックやデータの整合性の確認、予期せぬエラーの防止など、あらゆる場面で安定した動作につながります。

とくにPHPではユーザーの入力や外部システムからの値が常に想定どおりとは限らず、「空っぽ」「未定義」「NULL」「ゼロ」「空文字」など、さまざまな形で“値がないように見える状態”が現れます。こうしたケースを正確に区別するために、empty、isset、is_nullの違いを理解しておくことは欠かせません。どの関数を使えば安全なのか、どの条件分岐を採用すべきか、といった判断力が身につくと、PHPでの開発が格段に楽になります。

実践で役立つ使い分けのイメージ

emptyは、とにかく「ざっくり空かどうか」を知りたいときに向いています。フォームの入力が空かどうかを見るときなど、初心者がもっとも使いやすい関数です。一方のissetは「その変数はちゃんと存在していて、NULLではないか」を確認する強力なチェックで、とくにバグを防ぐために欠かせません。さらにis_nullは、値がNULLかどうかだけを判断したい場面で便利です。

この3つを状況に応じて組み合わせることで、より正確な入力チェックや条件判定ができるようになります。これはPHPの基礎でありながら、Webアプリケーションやフォーム処理、データ処理のすべての土台になる重要なポイントです。

サンプルコード(実践パターン)

以下は、フォームから送信されたデータを3つの関数でチェックする例です。


if (empty($_POST['email'])) {
    echo "メールアドレスが入力されていません。";
} elseif (!isset($_POST['email'])) {
    echo "メールアドレスが定義されていません。";
} elseif (is_null($_POST['email'])) {
    echo "メールアドレスはNULLです。";
} else {
    echo "入力されたメールアドレスを受け付けました。";
}

このように、場面ごとに適切な関数を選ぶことで、エラーを未然に防ぎ、安全で正確な処理ができるようになります。PHPで実務的なコードを書くうえでも、初心者の段階から判断の基準や仕組みを理解しておくことは大きな強みになります。

先生と生徒の振り返り会話

生徒

「emptyとissetとis_nullの違いがようやく分かりました! 同じように見えて、やっぱり用途が違うんですね。」

先生

「そのとおりです。PHPでは“値が存在するようで存在しない”というケースがとても多いので、違いを理解しておくと判断を誤らなくなります。」

生徒

「フォームの入力チェックにも全部使えそうですね。実際のコードを書いてみると、emptyが一番使いやすい気がします。」

先生

「そうですね。emptyは初心者にとって特に便利ですが、issetを併用するとより確実になりますし、NULLを扱うときはis_nullが役立ちます。」

生徒

「今回のサンプルみたいに3つを組み合わせると、安全なプログラムになるんですね。」

先生

「その感覚がとても大切ですよ。条件判定が正確にできると、PHPの処理全体が安定してきますし、エラーの原因も減ります。これからも積極的に試してみてくださいね。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPで値があるかどうかを簡単に確認する方法はありますか?

PHPではempty、isset、is_null関数を使うことで、変数に値があるか、NULLかどうか、空かどうかを簡単に確認できます。初心者でも安全に使える便利な関数です。

真偽値とは何ですか?PHPで使う意味は?

真偽値とはtrue(正しい)かfalse(間違い)の二択の値で、条件判定やif文でプログラムの動作を分岐させる際に使います。PHPでは条件によって処理を変える基本的な仕組みです。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New2
PHP
PHPの真偽値と条件判定をやさしく解説!初心者でもわかるempty・isset・is_nullの使い方
New3
PHP
PHP の file_get_contents() を使ってファイルを読み込む方法!初心者でもできる簡単なファイル操作
New4
PHP
PHPの条件分岐(if, elseif, else)の基本を完全ガイド!初心者でもわかる使い方
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
Python
Pythonのクラスメソッドと静的メソッドの違いとは?初心者でも迷わない使い分けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.5
Java&Spring記事人気No5
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.6
Java&Spring記事人気No6
PHP
初心者向けPHP の MySQL のデータを更新する方法(UPDATE 文)完全ガイド
No.7
Java&Spring記事人気No7
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.8
Java&Spring記事人気No8
PHP
PHPの可変長引数(...$args)の使い方を完全ガイド!初心者でもわかる基本と活用方法