taoCMS是基于php+sqlite/mysql的国内最小(100Kb左右)的功能完善、开源免费的CMS管理系统

php扩展的全局变量

2013-07-05

   php的扩展有时候需要从php.ini中读取一些配置信息,在用ext_skel向导生成的扩展中已经包含这些,只是代码都是注释的。 今天调试都通过了,在这把过程写出来。

     ext_skel生成的扩展框架有两个主要的程序文件 stone.c  ,php_stone.h . 打开php_stone.h 找到

 52 ZEND_BEGIN_MODULE_GLOBALS(stone)
 53         long  global_value;
 54         char *global_string;
 55 ZEND_END_MODULE_GLOBALS(stone)

去掉注释, 这里默认定义了两个 global_value,global_string.  往下看还能看到下面几行

#ifdef ZTS
 70 #define STONE_G(v) TSRMG(stone_globals_id, zend_stone_globals *, v)
 71 #else
 72 #define STONE_G(v) (stone_globals.v)
 73 #endif
 74 
 75 #endif  /* PHP_STONE_H */
 通过这个宏我们就能访问全局变量, 比如这样STONE_G(globa_vale)。 
 然后在扩展的函数里添加下面这行,

 
php_printf("ini value: %d n", STONE_G(global_value));
然后调用我们的函数 如下
php -dstone.global_value=12 -r "stone_base64('w');" 就可以看到我们的修改的全局变量值 12 后面的-r 是运行参数中的代码。 stone_base64是我自己的函数
 

类别:技术文章 | 阅读:282410 | 评论:1 | 标签:php php内核

想收藏或者和大家分享这篇好文章→

“php扩展的全局变量”共有1条留言

  1. 111 @2023-08-22 18:30 回复

    wd

发表评论

姓名:

邮箱:

网址:

验证码:

公告

taoCMS发布taoCMS 3.0.2(最后更新21年03月15日),请大家速速升级,欢迎大家试用和提出您宝贵的意见建议。

捐助与联系

☟请使用新浪微博联系我☟

☟在github上follow我☟

标签云