PHPでNullとEmptyの違いを理解しよう!10の具体例

PHPのNullとEmptyの使い方と違いを解説する記事のイメージ PHP
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

新たなプログラミングの旅へようこそ。

この記事を読むことで、PHPの「Null」と「Empty」という2つの重要な概念について理解を深め、それらを効果的に使いこなすスキルを身につけることができます。

●PHPのNullとは

PHPでは、「Null」は特殊な値の一つで、変数が値を持っていないことを表します。

変数が定義されているが値が代入されていない場合や、値が明示的にNullに設定されている場合などがNullと評価されます。

○Nullの基本

PHPでNullを表す簡単なサンプルコードを紹介します。

<?php
$var = NULL;  // Nullを代入
echo $var;    // 何も出力されない
?>

上のコードでは、変数$varNULLを代入しています。この時点で$varはNullとなります。

そして、Nullの変数をechoで出力しようとしても何も表示されません。

これがNullの基本的な性質です。

●PHPのEmptyとは

一方、PHPの「Empty」は関数の一つで、指定された変数が「空」であるかどうかを判断します。

ここでの「空」とは、変数が存在しない、またはその値が次のいずれかである場合を指します

  • “”(空文字列)
  • 0(0の数値)
  • 0.0(0の浮動小数点数)
  • “0”(0の文字列)
  • NULL
  • FALSE
  • array()(要素のない配列)

○Emptyの基本

PHPでEmptyを使った簡単なサンプルコードを紹介します。

<?php
$var = "";  // 空文字列を代入
if (empty($var)) {  // $varが空であるかどうかを判断
    echo '$var is empty.';  // 空であればこの行を出力
}
?>

上のコードでは、変数$varに空文字列""を代入しています。

そして、empty関数を用いて$varが空であるかどうかを判断しています。

$varが空であれば'$var is empty.'と出力します。

これがEmptyの基本的な使い方です。

次に、NullとEmptyの具体的な使い方を見てみましょう。

●NullとEmptyの使い方

NullとEmptyは、変数の状態を判断するための重要な道具です。

その使い方を具体的なサンプルコードを用いて詳しく解説します。

○サンプルコード1:Nullの使用例

このコードでは、2つの変数$var1$var2を用意しています。

$var1にはNullを明示的に代入し、$var2は値を何も代入していません。

そして、is_null関数を使ってこれらの変数がNullであるかどうかを判断しています。

どちらの変数もNullであるため、'$var1 is null.''$var2 is null.'が出力されます。

<?php
$var1 = NULL;  // Nullを代入
$var2;         // 値を代入していない

if (is_null($var1)) {  // $var1がNullであるかどうかを判断
    echo '$var1 is null.';  // Nullであればこの行を出力
}

if (is_null($var2)) {  // $var2がNullであるかどうかを判断
    echo '$var2 is null.';  // Nullであればこの行を出力
}
?>

○サンプルコード2:Emptyの使用例

上のコードでは、$var1には数値の0を、$var2にはbooleanのfalseを代入しています。

それぞれempty関数を使って空であるかどうかを判断しています。

これらの値はemptyの判断では「空」とみなされるため、'$var1 is empty.''$var2 is empty.'が出力されます。

<?php
$var1 = 0;     // 0を代入
$var2 = false; // falseを代入

if (empty($var1)) {  // $var1が空であるかどうかを判断
    echo '$var1 is empty.';  // 空であればこの行を出力
}

if (empty($var2)) {  // $var2が空であるかどうかを判断
    echo '$var2 is empty.';  // 空であればこの行を出力
}
?>

●NullとEmptyの応用例

NullとEmptyの基本的な使い方を理解したら、それらをどのように応用するか見ていきましょう。

NullとEmptyを使ったコードの応用例を紹介します。

○サンプルコード3:Nullを使ったコードの応用例

このコードでは、データベースから取得したデータ(ここでは$data)が存在しない場合(Nullの場合)にメッセージを出力する処理を紹介しています。

具体的には、$dataがNullである場合、’データがありません。’と出力します。

これはデータベースからのデータ取得におけるエラーハンドリングの一例です。

<?php
// データベースからのデータを想定
$data = NULL;  // データが存在しない場合を想定

if (is_null($data)) {
    echo 'データがありません。';
} else {
    echo $data;
}
?>

○サンプルコード4:Emptyを使ったコードの応用例

上記のコードでは、フォームからの入力($input)がない場合(Emptyの場合)にメッセージを出力する処理を紹介しています。

具体的には、$inputがEmptyである場合、’入力が必要です。’と出力します。

これはフォーム入力のバリデーションにおける一例です。

<?php
// フォームからの入力を想定
$input = "";  // 入力がない場合を想定

if (empty($input)) {
    echo '入力が必要です。';
} else {
    echo $input;
}
?>

●NullとEmptyの注意点と対処法

PHPではNullとEmptyはそれぞれ異なる性質と役割を持っています。

そのため、両者の違いを理解し、適切に使用することが重要です。特に注意すべきは、NullとEmptyが混同されてしまうことです。

具体的には、NullとEmptyは共に「ない」という概念を表現するものであるため、誤解されやすいです。

しかし、前述のように、それぞれが「ない」と判断する条件は異なります。

その違いを理解し、コードに反映することが重要です。

●NullとEmptyのカスタマイズ方法

PHPにはNullとEmptyを扱うための様々な関数が用意されています。

これらを組み合わせることで、更に柔軟なコードを書くことが可能です。

例えば、isset()関数は変数が設定されており、かつNullでない場合にtrueを返します。

また、array_filter()関数を使うと、配列からEmptyの要素を取り除くことが可能です。

これらの関数を活用することで、より具体的な条件に合わせたコードを作成することができます。

まとめ

PHPのNullとEmptyは、それぞれが持つ特性と使い方を理解し、適切に使用することが重要です。

本記事では、それぞれの基本的な使い方から応用例、注意点と対処法、さらにカスタマイズ方法まで詳しく解説しました。

これを参考に、NullとEmptyを適切に活用し、より良いコードを書くことができることを期待します。