全文共字,阅读需要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 |