php中tsrm理解

#ifdef ZTS

直接使用全局变量

#else

zend会使用一个global_id  为每个线程的全局变量创建一个副本

获取时会根据id-1为索引去get  类似数组的取值 ext_skel会帮我们生成好下面的宏:

  1. #ifdef ZTS
  2.     # define MYEXTENSION_G(v) \
  3.                  (((zend_myextension_globals*)(*((void ***)tsrm_ls))[(myextension_globals_id)-1])->v)
  4.     #else
  5.     # define MYEXTENSION_G(v) (myextension_globals.v)
  6.     #endif


tsrm宏:  后缀  c=call  cc=call comma  d=define dc=define comma

  1. #define TSRMLS_C tsrm_ls
  2. #define TSRMLS_D void *** tsrm_ls
  3. #define TSRMLS_CC ,tsrm_ls
  4. #define TSRMLS_DS ,void ***tsrm_ls //注意有个逗号

详情请移步鸟哥文章:http://www.laruence.com/2008/08/03/201.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值