【PHP】empty関数を使って変数が空か判定する方法を解説!

PHPのempty関数は、変数が空であるかどうかを判定します。
条件分岐によく使われます。
Isset関数やis_nullの違いも初心者でもわかりやすいサンプルコード付きで解説していきます。

empty()の構文

empty()関数は、変数が空かどうかをチェックします。また、変数が設定/宣言されているかどうかも確認します。
この関数は、変数が存在し空でない場合はfalseを返し、それ以外の場合はtrueを返します。

empty()は以下のようになります

パラメータ

$変数(必須): チェックする変数を指定します

戻り値

変数が存在し、空でない場合はfalseを返し、それ以外の場合はtrueを返します。

また、次の値は空と判断されます。

・ “0”(文字列として0)
・ 0(0は整数)
・ “”(空の文字列)
・ null
・ 偽
・ array()(空の配列)
・ $name(宣言されているがクラスに値がない変数)

empty()の使い方

先ほども言いましたが、empty()関数は、変数が空かどうかをチェックします。

empty()を使った次の例を見てみましょう。

出力結果

$varの中は空です。
$var2の中は空です。
$var3の中は空です。

emptyでfalse、trueになる値の一覧

先ほどのコードでは値が空であったことからempty()はによりtrueを返していましたが、falseと判断される場合もあります。

<

empty
$var = NULL; true
$var = 1; false
$var = array() true
$var = array(1) false
$var = “” true
$var = “0”;/td>

true
$var = 0; true
$var true

ここでempty()関数によってtrueで返される場合、falseで返される場合のコードを見てみましょう。

出力結果

bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)

isset(), empty(), is_null()の比較

empty()以外にも別に空チェックを行うisset()関数とis_null()があります。
これらの関数は似てるようで、少し異なります。

言葉では分からないと思いますのでisset()、is_null()とは何かのかを解説し、
先ほど解説したempty()とisset()、is_null()ではどのような値を返すのか比較してみましょう。

isset()

isset()関数は、変数が設定されているかどうかをチェックします。
つまり、変数を宣言する必要があり、NULLではありません。
この関数は、変数が存在しNULLでない場合はtrueを返し、それ以外の場合はfalseを返します。

is_null()

is_null()関数は、変数がNULLかどうかをチェックします。
この関数は、変数がNULLの場合はtrue(1)を返し、それ以外の場合はfalse / nothingを返します。

isset()とempty()と is_null()でこれらの関数がある値に対して何を返すのか比較してみました。
すると以下のような結果となりました。

変数の値($ var) isset($ var) 空($ var) is_null($ var)
“” (空文字) true true false
” ” (スペース) true false false
false true true false
true true false false
array()(空配列) true true false
null true true false
“0”(0は文字列) true true false
0(0は整数) true true false
0.0(floatとしての0) true true false
var $ var; (宣言された変数ですが、値がない) false true true
NULLbyte (“\0”) true false fakse

似ているからどれを使っても大丈夫だと思って使うのはあまりおすすめしません。
用途に合わせて使うようにしましょう。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し