php常用的宏

本文介绍了PHP源码中常见的宏定义,包括CG、EG、PG和SG等,并详细解释了这些宏如何用于获取不同层级的全局变量。同时,还深入探讨了TSRMG宏及TSRM_UNSHUFFLE_RSRC_ID宏的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先记录下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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值