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])
。