时间:2016-10-12来源:本站原创作者:佚名

全文共字,阅读需要13分钟

13INI设置

在前面的一章,我们已经学会了MINIT、MSHUTDOWN函数,以及RINIT和RSHUTDOWN等函数的使用,这里我们将介绍并学习ini设置的使用。

13.1声明和访问INI设置

INI条目被定义在一个完整的独立的的块,位于上文中所说的MINIT方法的同一个源文件,并且用下面的一对宏来定义,并在这对宏之间放入一个或者多个条目PHP_INI_BEGIN()和PHP_INI_END()

这些宏方法和上一章所提到的ZEND_BEGIN_MODULE_GLOBALS()和ZEND_END_MODULE_GLOBALS()有着相同的用法。这些结构是用静态数据的实例来声明,而不仅仅是提供一个结构的定义

staticzend_ini_entryini_entries[]={{0,0,NULL,0,NULL,NULL,NULL,NULL,NULL,0,NULL,0,0,NULL}};

正如你所看到的,上面定义了zend_ini_entry的一个向量值并以一个空记录来终止。你或许已经多次在function_entry结构的定义之中看到过这种以填充静态向量的方法

简单INI设置

现在你可以使用INI结构来声明条目,这个机制是用来注册和销毁一些在机器上的设置,你可以声明一些对你的扩展有用的有实际意义的设置了。

假设你的扩展的方法就像你在第五章看到的那个例子(YourFirstExtension)一样,只是输出一个简单的问候,你可能想让你要输出的问候语句是可定制的:

PHP_FUNCTION(sample4_hello_world){php_printf("HelloWorld!\n");}

最简单的方法就是定义一个INI的设置,让它的默认值为HelloWorld!,像下面这样:

#include"php_ini.h"PHP_INI_BEGIN()PHP_INI_ENTRY("sample4.greeting","HelloWorld",PHP_INI_ALL,NULL)PHP_INI_END()

正如你猜测的一样,PHP_INI_ENTRY这个宏里面设置的前面的两个参数,分别代表着INI设置的名称和它的默认值。第二个参数决定设置是否允许被修改,以及它能被修改的作用域。最后一个参数是一个回调函数,当INI的值被修改时候触发此回调函数。你将会在某些修改事件的地方详细的了解这个参数。

PHP总共有4个指令配置作用域:(PHP中的每个指令都有自己的作用域,指令只能在其作用域中修改,不是任何地方都能修改配置指令的)

ParameterMeaningPHP_INI_PERDIR指令可以在php.ini、







































初期白癜风治的好吗
云南好的白癜风医院

转载请注明原文网址:http://www.coolofsoul.com/phptx/11920.html
------分隔线----------------------------