【PHP入門】nullと空文字を判定する3つの方法まとめと注意点

この記事を書いたチーム:frontier

1.空文字とNULLの違い

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

nullと空白について、似たようなものだと感じるかもしれませんが実際の扱いは異なります。
nullは何もない状態を表す言葉で、空文字は長さ0の文字列を表します。
こちらを正しく理解しておかないと、DB登録時やオブジェクトからデータを取り出す際にエラーが発生する原因となります。

2.PHPで用意されているメソッドを利用する

PHPにはnullか空白かをチェックするための既存の関数が用意されています。
①is_null
②empty
③isset

■is_null

nullかどうかを調べるための変数です。
戻り値はnullの場合true、nullでない場合falseになります。
実際の使い方はこのようになります。

■empty

変数が空かどうかを調べるための変数です。
戻り値は空の場合true、空でない場合falseになります。

■isset

変数に値がセットされていない、またはnullの場合true、それ以外の場合にfalseを返却します。

3.使用する際の注意点

使用する際はそれぞれの関数のチェックが正しく行えるか確認して使用しましょう。

①どこまでを空文字として考えるかを決めておく。

  • 数量などのデータを登録する際に0を空として考えるのか
    (emptyでチェック時に0はtrueになるため)
  • 半角スペースは空として考えるのか
    (半角スペースは文字として扱われるため、空白チェックでチェックできない)

②同じチェック内容でも他のチェック結果が異なるため、何を確認したいのか決めてから選択する

同じnullチェックでも、is_nullとemptyで他の結果が異なります。

■is_null

$val=””; //結果:false
$val=”0″; //結果:false

■empty

$val=””; //結果:true
$val=”0″; //結果:true
どのようなデータをチェックしたいのか明確にして使用しましょう。

4.正しくチェックできない場合

nullと空白はチェックしたいが数字の0はチェックしなくてもよい場合など、どの関数を使用しても望んだ結果にならない場合があります。その場合は、自作の関数を作成しましょう。

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス