カテゴリ: PHP 更新日: 2025/12/08

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)=間違っているを意味します。

例えば、「りんごが赤いか?」という問いに対して、「はい(true)」または「いいえ(false)」で答えるのと同じです。

PHPではこの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かどうか、空かどうかを簡単に確認できます。初心者でも安全に使える便利な関数です。
コメント
コメント投稿は、ログインしてください

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

カテゴリの一覧へ
新着記事
New1
PHP
PHPのCookieセキュリティを完全ガイド!初心者でもわかるSecureとHttpOnlyの使い方
New2
PHP
PHPのCSRF対策を完全理解!トークンを使った安全なフォーム送信の仕組みを初心者向けに徹底解説
New3
PHP
PHPのSQLインジェクション対策を完全解説!初心者でも安全にデータベースを扱う方法
New4
PHP
PHPでカウントダウンタイマーを作る方法!初心者向けにやさしく解説
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
Java&Spring記事人気No2
PHP
初心者向けPHPでMySQLからデータを取得する方法(SELECT文)完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonのリストの重複を削除する方法を解説!初心者向けにsetとdict.fromkeysの使い方をやさしく説明
No.4
Java&Spring記事人気No4
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.5
Java&Spring記事人気No5
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
PHP
PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう
No.8
Java&Spring記事人気No8
PHP
PHPのXSS対策を完全ガイド!初心者でもわかる安全なWebアプリの作り方
-
-