PHP 言語の構造と機能
VLD をインストールしてから、PHP を深く理解し始めました。今日、VLD を使用して echo、print、print_r の違いを確認したときに、php ドキュメントを確認して問題を発見しました: echo() は関数ではありません (関数です)言語構造)、 という質問について落ち込んでいたのですが、関数とは何ですか、言語構造とは何ですか。
?
最後に、vld を使用してオペコードを勉強しました。理解できたように見えましたが、完全には理解できませんでした。夜、ニアオ兄弟のブログを読んでいたところ、偶然ニアオ兄弟の説明を見て、少し理解できました。 http://www.laruence.com/2009/12/09/1180.html
?
言語構造、つまり言語自体によってサポートされるステートメントと識別子。たとえば、for、foreach、 continue など、構文中に使用されます。 isset はコンパイル/実行前に展開された C 言語のマクロのようなものであることがわかります。
?
?
古典的な C 言語の教科書には、次のような記述があります。 putchar 関数と getchar 関数は、実際にはマクロとして定義されることが多く、文字の処理や関数の呼び出しに必要な実行時のオーバーヘッドを回避できます。
?
結局のところ、関数の呼び出しにはオーバーヘッドが必要です。不要な関数呼び出し (非常に頻繁に呼び出される関数) をマクロを使用して置き換えます。