isset と empty

2012年8月12日

注意
【過去の自分の戒めの為に】
isset と empty は全くの別物である。

isset ? 変数がセットされていること、そして NULL でないことを検査する
・ ・
◆変数が存在しなければ FALSE を返します。

※1 isset() は何らかの値が渡された 変数の場合のみ動作します。そうでない場合、パースエラーとなります。 もし 定数が設定されているかどうかをチェックする場合は、 defined() を使用してください。

※2 これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。

※3 オブジェクトのアクセス不能なプロパティに対して isset() を使用した場合は、もしオーバーロードメソッド __isset が宣言されていればそれをコールします。

empty ? 変数が空であるかどうかを検査する

◆変数が空でないか、0でない値であれば FALSE を返します。

※1 empty() は、変数のみをチェックし、それ以外の値を チェックすると文法エラーを生成します。つまり、次の例は動作しません: empty(trim($name)).

※2 注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。

※3 オブジェクトのアクセス不能なプロパティに対して empty() を使用した場合は、もしオーバーロードメソッド __isset が宣言されていればそれをコールします。

  • この記事を書いた人

カバノキ

印刷会社のWEB部隊に所属してます。 WEB制作に携わってから、もう時期10年になります。 普段の業務では、PHPをメインにサーバーサイドの言語を扱っています。 最近のお気に入りはJavascriptです。 Vue.jsを狂喜乱舞しながら、社内に布教中です。

-PHP