[PHP] 変数に値が何か入っているかを調べる関数の使い方の違いについて

変数に値が入っているかを調べるのに使う関数、isset・empty・is_null の使い方の違いが曖昧なままでいたのですが、たびたび混乱するのでここで自分なりに整理してみました。

isset、empty、is_nullについて

isset

変数がセットされているかどうかを調べる。変数に何も入っていなければ(NULLの状態) FALSE を返す。NULL 以外ならば TRUE を返す。

PHP: isset – Manual

empty

変数が空だったらTRUE それ以外は FALSE を返す。
空以外にも、0(整数/文字列)、NULL、FALSE、空の配列を TRUE で返す。

PHP: empty – Manual

is_null

変数がNULLかどうか調べる。変数がNULLならTRUE、それ以外はFALSEを返す。

PHP: is_null – Manual

is_null と ! isset の違い

変数読み出しの点で動作が異なるが、NULL値かどうかを返す結果は同じ。以下の参考サイトがとてもわかりやすかったです。

issetを正しく理解する。null値とunsetの違い-PHP変数管理 – CPA-LABテクニカル

比較表

実行結果の比較表が以下です。どういう場合にTRUEが返るかが表を作ってみてよく分かりました。元ページと表のコードをこちら「isset empty is_null の比較テスト」から見ることができます。

比較表

この3つの関数の違いは他の方もよく書かれているので、みなさん混乱するところなんだなと思いました。マニュアルや他のテキストをよんでもなかなか理解できず、結局、自分で実行した結果を見て比較することで理解できた気がします…。

Related Article

No Comments & Tracbacks

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー トラブル コードサンプル コンテンツ スライドショー jQueryプラグイン php 引っ越し 素材 お知らせ JavaScript Facebook CSS カテゴリー 投稿タイプ IE HTML5 Shareボタン seo レスポンシブ Photoshop タクソノミー ナビゲーション カスタムメニュー Git Macアプリ サイドバー WPセキュリティ SVG iTunes PHPリファレンス API WP使い方 query_posts データベース get_posts() 条件分岐 コメント function RSS スマートフォン Sass/Compass さくらVPS