PHP:如何理解ini_get_all函数访问的位掩码值
我开始使用ini_get_all函数来检索共享主机服务器上的所有配置选项。最后我得到了这个数组块:PHP:如何理解ini_get_all函数访问的位掩码值,php,apache,apache-config,Php,Apache,Apache Config,我开始使用ini_get_all函数来检索共享主机服务器上的所有配置选项。最后我得到了这个数组块: [allow_call_time_pass_reference] => Array ( [global_value] => 1 [local_value] => 1 [access] => 6 ) [allow_url_fopen] => Array ( [global_valu
[allow_call_time_pass_reference] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 6
)
[allow_url_fopen] => Array
(
[global_value] => 1
[local_value] => 1
[access] => 4
)
PHP手册仅给出了以下描述:
指令可能具有多个访问级别,这就是access显示适当位掩码值的原因。
那么,有人能解释一下“访问”吗?如何理解它的位掩码值?如果您已经阅读了“返回值”部分的内容,您就会找到它的名称及其含义:
:1
:可以在用户脚本(如INI\u set())或Windows注册表中设置条目PHP\u INI\u USER
:4
:可以在PHP.INI或httpd.conf中设置条目PHP\u INI\u系统
:6
:可以在PHP.INI、.htaccess或httpd.conf中设置条目PHP\u INI\u PERDIR
:7
:条目可以在任何地方设置PHP\u INI\u ALL
define('PHP_INI_USER', 1)
define('PHP_INI_PERDIR', 2)
define('PHP_INI_SYSTEM', 4)
define('PHP_INI_ALL', PHP_INI_USER | PHP_INI_PERDIR | PHP_INI_SYSTEM); // = 7
要从ini\u get\u all()
检查访问级别,可以执行以下操作(以allow\u url\u fopen
为例):
供参考
在main/PHP_ini.h中的PHP源代码中,这些常量被定义为Zend等价物的别名:
#define PHP_INI_USER ZEND_INI_USER
#define PHP_INI_PERDIR ZEND_INI_PERDIR
#define PHP_INI_SYSTEM ZEND_INI_SYSTEM
#define PHP_INI_ALL ZEND_INI_ALL
(第45至49行)
Zend等价物在Zend/Zend_ini.h中定义如下:
#define ZEND_INI_USER (1<<0)
#define ZEND_INI_PERDIR (1<<1)
#define ZEND_INI_SYSTEM (1<<2)
#define ZEND_INI_ALL (ZEND_INI_USER|ZEND_INI_PERDIR|ZEND_INI_SYSTEM)
#定义ZEND#u INI#u用户(哇,谢谢。坦率地说,我读了那些页面(更像是我的眼睛看到了,但我的大脑否认了)到今天为止,每个值的数字似乎已经从该页上消失了,所以这个答案非常有用。谢谢。@macl,我很高兴它帮助了您。如果您再次遇到这个问题,您也可以打印常量并查看它们是什么。
#define ZEND_INI_USER (1<<0)
#define ZEND_INI_PERDIR (1<<1)
#define ZEND_INI_SYSTEM (1<<2)
#define ZEND_INI_ALL (ZEND_INI_USER|ZEND_INI_PERDIR|ZEND_INI_SYSTEM)