isset と is_null の違いは何ですか?
マニュアルを見ると、isset と is_null の機能はほぼ完全に「逆」です…
isset は単に is_null の反対のエイリアスですか?
さあ、話しましょう違いについては、本当にたくさんあります~
違いはすべて、is_null が関数、isset がステートメントであるためです。
isset は、echo や print と同様、ステートメントであり、PHP 自体の言語構造です。
そして is_null これは関数であり、通常の関数と同じように、変数関数として呼び出すことができます。
「わかった、わかった、関数とステートメントの違いは知っている」と思われるかもしれませんが、TMD の違いは何ですか?
いわゆるステートメント、つまり言語構造は、言語自体によってサポートされているステートメントと識別子です。たとえば、foreach や continue などの場合、それらは実行された時点で「消去」(論理的に置き換え)されます。構文分析プロセス中に isset ステートメントがどのように「消去」されるかを見てみましょう。
1. まず、字句解析中に isset が T_ISSET 識別子として認識されます。
isset はコンパイル/実行前に展開された C 言語のマクロのようなものであることがわかります。
そのため、次のようなパフォーマンスの違いが生じます。
コードをコピー
www.bkjia.com