php扩展开发

本文详细介绍了PHP扩展开发中如何定义和使用ini配置参数,以及模块全局变量的定义、初始化和存取。通过示例代码解析了ZEND_INI_ENTRY宏的用法,以及在MINIT和MSHUTDOWN函数中如何管理模块全局变量。同时讨论了在非线程安全和线程安全环境下,模块全局变量的存取方式。此外,还涉及了PHP的字符串管理和扩展相关函数,如常量定义、字符串转换、数组操作等。
摘要由CSDN通过智能技术生成

一、扩展ini配置参数

本段参考:
https://blog.csdn.net/barfoo/article/details/1550913
https://blog.csdn.net/chichou0337/article/details/100721024

1 ini参数定义

扩展可以支持在 php.ini中提供一些参数,来控制扩展的行为,那么这些参数是在扩展中是怎么定义的呢?
所有的配置项参数都必须在PHP_INI_BEGIN() 和 PHP_INI_END()之间,每个配置项则通过 PHP_INI_ENTRY 宏来定义,示例如下

PHP_INI_BEGIN()

STD_PHP_INI_ENTRY("myecho.number", "100", PHP_INI_ALL, OnUpdateLong, global_number, zend_myecho_globals, myecho_globals)
STD_PHP_INI_ENTRY("myecho.string", "ab", PHP_INI_ALL, OnUpdateString, global_string, zend_myecho_globals, myecho_globals)
STD_PHP_INI_ENTRY("myecho.boolean", "0", PHP_INI_ALL, OnUpdateBool, boolean, zend_myecho_globals, myecho_globals)

PHP_INI_END()

上述的例子宏展开后的结果如下:

     static  zend_ini_entry ini_entries[]  =   {
     //   BEGIN 的定义
    {
    0, PHP_INI_ALL, "foo_bar.global_value", sizeof("foo_bar.global_value"), NULL, NULL, NULL, null, "42", sizeof<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值