Edited at

PHPのissetと!is_nullを勘違いしていた

PHPのisset()と!is_null()は同じだと思っていました。

PHPの公式にも、逆の条件として載ってますし。

!isset()って書いてる人がいたら、is_null()の方が良くない?とコメントしていました。

しかし、is_null()でエラーが出ていて、isset()でエラーが出ていないことに気付き、よく調べてみると、


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


PHP: isset - Manual

isset()は、関数ではなく言語構造。

empty()とかと一緒でエラーが出ないようです。

エラーが出る可能性がある時は、isset()を使うようにしましょう!

ちなみに、細かい所では、こういう違いもあるようです。

・ isset()と!is_null()の値は常に等しいか

https://cnrd.hatenadiary.org/entry/20091127/1259235755