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" 评估为 ""(空字符串)。
请记住 get_cfg_var() 返回字符串 (1) '1',用于值:On
<?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 中定义的值