PHPのisset、empty、is_nullの使い方

投稿日: 作成:   更新:

プログラミング初心者向けにPHPの解説をします。
サンプルコードを使って分かりやすい説明を心がけたいと思います。

こんにちはNAGAです。
今回は、PHPのisset、empty、is_null関数の書き方について解説します。

これらの関数は、変数に値が入っているか判定するための関数です
よく使いますので、覚えておきましょう

isset、empty、is_null関数の使い方

isset関数

変数にセットされているか確認する関数です。

<?php 

$var = 'abc';
 
if (isset($var)) {
    echo '変数に値がセットされています。';
} else {
    echo '変数に値はありません。';
}

?>

出力結果:

empty関数

変数が空であるか確認する関数です。
※単純にisset関数の反対がempty関数ではありませんので気をつけてください。

<?php 

$var = '';
 
if (empty($var)) {
    echo '変数に値はありません。';
} else {
    echo '変数が値がセットされています。';
}

?>

出力結果:

is_null関数

変数がNULLであるか確認する関数です。

<?php 

$var = NULL;
 
if (is_null($var)) {
    echo '変数はNULLです。';
} else {
    echo '変数はNULLではありません。';
}

?>

出力結果:

関数を使わない方法

関数を使わずに「if ($var)」で変数判定することができます。
こっちの方がシンプルで私は好きですが、他の関数と判定結果が異なるので目的に合わせて使用しましょう。

<?php 

$var = 'abc';
 
if ($var) {
    echo '変数に値がセットされています。';
} else {
    echo '変数に値はありません。';
}

?>

出力結果:

各関数の判定結果一覧表

この記事の最初にも書きましたが、単純にisset関数の反対がempty関数ではありません

各それぞれの関数で判定内容が異なりますので、次の一覧表を作成しました。

変数の値issetemptyis_nullif ($var)
$var=1;truefalsefalsetrue
$var=””;truetruefalsefalse
$var=”0″truetruefalsefalse
$var=0;truetruefalsefalse
$var=NULL;falsetruetruefalse
$varfalsetruetruefalse
$var=array();truetruefalsefalse
$var=array(“abc”);truefalsefalsetrue

この一覧の中で特に気を付けたいところは、empty関数の「0」が入っているのに「true」扱いになるところです。

空値の判定にempty関数を使っていると、ここでよくハマります。

使用する関数は統一する

例えば同じソースコードに異なる関数が混在して書かれていたら、わかりにくいですね。

バグの温床にもなりますので、よほどのことがない限り関数は統一しましょう。

次のソースでは、isset関数とempty関数を混在させています。

<?php 

// 5 + 3 = 8
$var1 = 5;
$var2 = 3;
if (isset($var1) && !empty($var2)) {
    $answer = $var1 + $var2;
    echo '5 + 3 = '. $answer;
}

?>

出力結果:

次のように「isset関数」で統一すると可読性が良くなります。

<?php 

// 5 + 3 = 8
$var1 = 5;
$var2 = 3;
if (isset($var1) && isset($var2)) {
    $answer = $var1 + $var2;
    echo '5 + 3 = '. $answer;
}

?>

開発者によって関数の好き嫌いがあるので、チームの中で話し合って統一しましょう。

まとめ

今回は、PHPのisset、empty、is_null関数を解説しました。

変数に値がセットされているか判定するだけでも方法がいくつかありますが、うまく利用していきましょう。

プログラミング言語は、あくまでシステムを動かすだけの手段です。
どんな書き方であっても、まずは正しく動かすことを目的としましょう


プログラミングスクールをお探しの方へ

プログラミング学習を挫折せずに続けて成功できる人は

「目的目標を明確にすること」
「質問・相談できる環境を作ること」
「自己解決スキルを身に着けること」

この3つを大切にしてると思います。

ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。

  • テックキャンプ
    本気でIT業界に転職したい方におすすめです。
    転職できなかったら全額返金があります。
  • DMM WEBCAMP
    国から認定されているスクールです。
    やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。
  • TechAcademy
    1週間の無料体験があります。
    気軽にスクールを体験したい方向けです。