PHP カーネルの 2 つの重要なグローバル変数

WBOY
リリース: 2016-06-23 13:46:17
オリジナル
973 人が閲覧しました

PHP のソースコードを読んでいると、CG()、EG() などのマクロがたくさん出てきます。これらのマクロの意味を理解していないと、ソースコードを理解するのが非常に困難になります。

Zend エンジンには 2 つの重要なグローバル変数構造があり、これらは Zend エンジンが終了する前に存在する変数です。

typedef struct _zend_compiler_globals zend_compiler_globals;typedef struct _zend_executor_globals zend_executor_globals;
ログイン後にコピー
/* Compiler */#ifdef ZTS# define CG(v) TSRMG(compiler_globals_id, zend_compiler_globals *, v)int zendparse(void *compiler_globals);#else# define CG(v) (compiler_globals.v)extern ZEND_API struct _zend_compiler_globals compiler_globals;int zendparse(void);#endif/* Executor */#ifdef ZTS# define EG(v) TSRMG(executor_globals_id, zend_executor_globals *, v)#else# define EG(v) (executor_globals.v)extern ZEND_API zend_executor_globals executor_globals;#endif
ログイン後にコピー

CG は、Zend コンパイラに関連するグローバル変数、compiler_globals を意味します。

EG は、executor_globals を意味します。 、Zend エグゼキュータに関連するグローバル変数

これら 2 つの構造には、PHP カーネルを理解するために非常に重要な多くの要素が含まれています。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート