php常用的巨集

2021-06-20 20:15:16 字數 846 閱讀 5260

先記錄下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:

# define sg(v) tsrmg(sapi_globals_id, sapi_globals_struct *, v)

sg巨集主要用於獲取sapi層範圍內的全域性變數 

其中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)

PHP擴充套件開發常用巨集介紹

name 函式名 arg info 函式引數定義資訊 example const zend function entry xml functions 最常用的就是下面三個,定義在zend api.h當中.zend begin arg info ex name 鍵名,規範命名都是函式名 arginfo...

常用的巨集符號

1 解釋 連線下一行 例子 define link tokenname aa bb tokenname 呼叫 a link b 輸出 a aa bb b 2 tokenname 解釋 將tokenname變為字元 tokenname 例子 define makechar tokenname toke...

常用的巨集定義

比較兩個數的大小 define max a,b a b?a b define min a,b ab?a c?a c b c?b c define min a,b,c a附 c語言巨集定義 define max a,b a b?a b 有什麼隱患?或者說 define max a,b a b a b ...