php拓展开发之模块全局变量

本文介绍了PHP扩展开发中的模块全局变量,包括其在模块初始化到注销期间的作用,不同环境下的定义方式,初始化与注销函数,以及如何在代码中便捷地存取这些变量。在线程安全和非线程安全环境下,ZEND_DECLARE_MODULE_GLOBALS和ZEND_EXTERN_MODULE_GLOBALS宏的使用是关键,而ZEND_INIT_MODULE_GLOBALS则用于管理和清理模块全局变量。
摘要由CSDN通过智能技术生成

1.什么是模块全局变量

模块全局变量存在于模块初始化(PHP_MINIT_FUNCTION(extname))到模块注销(PHP_MSHUTDOWN_FUNCTION(extname))期间。在不同的环境下,在这期间存在一个或多个请求,共享模块全局变量。

2.模块变量类型的定义

在引入php相关头文件后,定义:

PHP_BEGIN_MODULE_GLOBALS(extname)
    std::string name;
    std::string version;
PHP_END_MODULE_GLOBALS(extname)

PHP_BEGIN_MODULE_GLOBALS 宏的定义为:

#define ZEND_BEGIN_MODULE_GLOBALS(module_name) \
    typedef struct _zend_##module_name##_globals {
  

PHP_END_MODULE_GLOBALS 宏的定义为:

#define ZEND_END_MODULE_GLOBALS(module_name)    \
    } zend_##module_name##_globals;

所以上面的模块变量定义展开来就是:

typedef struct _zend_extname_globals {
    std::string name;
    std::string 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值