isset() と !empty() の両方をチェックするのはなぜですか? 質問する

isset() と !empty() の両方をチェックするのはなぜですか? 質問する

issetとには違いがありますか!empty。この二重ブールチェックを実行する場合、この方法は正しいですか、それとも冗長ですか? また、同じことを実行するより短い方法はありますか?

isset($vars[1]) AND !empty($vars[1])

ベストアンサー1

これは完全に冗長です。 はempty、 の略記法であり!isset($foo) || !$foo!emptyに類似していますisset($foo) && $foo。 つまり、emptyは の逆のことに加えて、値の真偽性issetに関する追加のチェックを行います。

言い換えると、 はemptyと同じです!$fooが、変数が存在しなくても警告をスローしません。これがこの関数の主なポイントです。変数が設定されているかどうかを気にせずにブール比較を実行します。

マニュアル次のように表現しています。

empty()は の逆ですが(boolean) var変数が設定されていない場合は警告が生成されません。

こちらをそのままお使いいただけます!empty($vars[1])

おすすめ記事