get_cfg_var 直接返回 php.ini 中的值,而 ini_get 返回运行时配置值。我在 PHP 5.1.6 上试过了。
[由 danbrown AT php DOT net 编辑:此注释的作者的意思是 ini_get() 将返回由 ini_set()、.htaccess、本地 php.ini 文件和其他函数在运行时设置的值。相反,get_cfg_var() 将严格返回服务器 php.ini 中的值。]
(PHP 4, PHP 5, PHP 7, PHP 8)
get_cfg_var — 获取 PHP 配置选项的值
获取 PHP 配置 option
的值。
此函数不会返回在编译 PHP 时设置或从 Apache 配置文件读取的配置信息。
要检查系统是否正在使用配置文件,请尝试检索 cfg_file_path 配置设置的值。如果此值可用,则表示正在使用配置文件。
option
配置选项名称。
返回由 option
指定的 PHP 配置变量的当前值,如果发生错误则返回 false
。
get_cfg_var 直接返回 php.ini 中的值,而 ini_get 返回运行时配置值。我在 PHP 5.1.6 上试过了。
[由 danbrown AT php DOT net 编辑:此注释的作者的意思是 ini_get() 将返回由 ini_set()、.htaccess、本地 php.ini 文件和其他函数在运行时设置的值。相反,get_cfg_var() 将严格返回服务器 php.ini 中的值。]
值为“yes”的设置将返回为“1”。
<?php
//#我的 ini 文件
//A = 1
//B = 任何东西
//C = yes
//D = /some/path/file
get_cfg_var('A') // 返回 '1'
get_cfg_var('B') // 返回 '任何东西'
get_cfg_var('C') // 返回 '1',等等,为什么?
get_cfg_var('D') // 返回 '/some/path/file'
?>
我的设置是 = yes,然后我检查它是否 ===“yes”,结果惨败。
布尔型值按如下方式计算:“true”、“on”、“yes”计算为“1”(字符串 1),而“false”、“off”、“no”计算为“” (空字符串)。
请记住,对于值:On,get_cfg_var() 返回字符串(1) '1'。
<?php
//在 php.ini 中
//A = On
$A1 = get_cfg_var("A") === "On";
$A2 = get_cfg_var("A") === 1;
$A3 = get_cfg_var("A") === "1";
//$A1 为 false
//$A2 为 false
//$A3 为 true
?>
ini_get() 和 get_cfg_var() 之间的区别如下
@) ini_get(): 返回 .htaccess 中的当前值,或在 PHP_INI_USER 或 PHP_INI_PERDIR 中定义的值。
@) get_cfg_var: 返回 php.ini 中定义的值。