PHP源碼中的常見宏

Zend/zend_globals_macros.h:
# define CG(v) TSRMG(compiler_globals_id, zend_compiler_globals *, v)

Zend/zend_globals_macros.h:
# define EG(v) TSRMG(executor_globals_id, zend_executor_globals *, v)

main/php_globals.h:
# define PG(v) TSRMG(core_globals_id, php_core_globals *, v)

main/SAPI.h:
php

# define SG(v) TSRMG(sapi_globals_id, sapi_globals_struct *, v)api

SG宏主要用於獲取SAPI層範圍內的全局變量 
spa



其中PG是一個宏,定義在php_globals.h中:
# define PG(v) TSRMG(core_globals_id, php_core_globals *, v)
TSRMG也是一個宏,定義在TSRM.h中:
#define TSRMG(id, type, element) (((type) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
TSRM_UNSHUFFLE_RSRC_ID也是一個宏,也定義在TSRM.h中:
#define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1)orm

相關文章
相關標籤/搜索