背景
get_cfg_var() 取的值是配置文件中的值
ini_get() Gets the value of a configuration option, 则取的当前值(运行时,PHP系统定义)
示例
<?php
print get_cfg_var('memory_limit'); // 返回 1024M
print(" ");
print ini_get('memory_limit'); // 返回 1024M
print(" ");
ini_set('memory_limit', '12M');
print ini_get('memory_limit'); // 返回 12M
print(" ");
print get_cfg_var('memory_limit'); // 返回 1024M
print(" ");
ini_restore('memory_limit');
print ini_get('memory_limit'); // 返回 1024M
print(" ");
print get_cfg_var('memory_limit'); // 返回 1024M
print get_cfg_var('memory_limit'); // 返回 1024M
print(" ");
print ini_get('memory_limit'); // 返回 1024M
print(" ");
ini_set('memory_limit', '12M');
print ini_get('memory_limit'); // 返回 12M
print(" ");
print get_cfg_var('memory_limit'); // 返回 1024M
print(" ");
ini_restore('memory_limit');
print ini_get('memory_limit'); // 返回 1024M
print(" ");
print get_cfg_var('memory_limit'); // 返回 1024M
Notes
The difference between get_cfg_var() and ini_get() is that the former returns whatever is in php.ini while the latter returns the runtime settings.
Configure the following parameter in php.ini.
[test_module]
test_module.name = "module_name"
test_module.name = "module_name"
get_cfg_var() will happily return the text(module_name) while ini_get() would not, as it's not configurable option belonging to any extension. Or, in another word, ini_get() will only return items that are defined in the source code.