isset()
と!empty()
の違いがわかりません。
変数が設定されている場合、それは空でないことと同じではないのですか?
[〜#〜] isset [〜#〜]は、変数が設定されているかどうかを確認します。つまり、変数がNULL以外の値であるか、値が割り当てられていないかどうかを確認します。 ISSET
は、変数が存在し、NULL以外の値を持つ場合、TRUE
を返します。つまり、 ""、0、 "0"、またはFALSEが割り当てられた変数が設定されているため、TRUE
の場合はISSET
になります。
[〜#〜] empty [〜#〜]は、変数が空かどうかを確認します。空は、 ""(空の文字列)、0(整数)、0.0(浮動小数点) `、" 0 "(文字列)、NULL、FALSE、array()(空の配列)、および" $ var; "として解釈されます。 (宣言された変数ですが、クラスに値がありません。
詳細については、 この記事 を参照してください
出典:http://php.net/manual/en/types.comparisons.php このページは、empty()
、is_null()
、isset()
。
型比較表は、これらの演算子に関するすべての質問に対する答えを提供します
isset
—変数が設定されていてNULLでないかどうかを判断します。
!empty
—変数が空ではないかどうかを判断します。
Issetは、変数が設定されていない場合、またはnullの場合はfalseを返し、変数が設定されていてnullでない場合はtrueを返します。
!emptyは、変数が設定されていて空ではない場合にtrueを返します。空の文字列、空の配列、「0」、0、およびfalseは、空として定義されます。
そしてもう一つの発言。 empty()
は、変数も存在するかどうかを確認します。つまり宣言されていない変数に対してempty()
を実行した場合、エラーは表示されず、empty()
は 'true'を返します。したがって、次に変数が空かどうかを確認する必要がある場合は、isset()
を避けることができます。
そう
isset($var) && !empty($var)
に等しくなります
!empty($var)