(PHP 4, PHP 5, PHP 7, PHP 8)
get_cfg_var — Gets the value of a PHP configuration option
Gets the value of a PHP configuration option
.
This function will not return configuration information set when the PHP was compiled, or read from an Apache configuration file.
To check whether the system is using a configuration file, try retrieving the value of the cfg_file_path configuration setting. If this is available, a configuration file is being used.
option
The configuration option name.
Returns the current value of the PHP configuration variable specified by
option
, or false
if an error occurs.
get_cfg_var returns the value from php.ini directly,while the ini_get returns the runtime config value. I have tried it on PHP 5.1.6
[EDIT by danbrown AT php DOT net: The author of this note means that ini_get() will return values set by ini_set(), .htaccess, a local php.ini file, and other functions at runtime. Conversely, get_cfg_var() will return strictly the server php.ini.]
settings with the value of 'yes' will be returned as '1'.
<?php
//#my ini file
//A = 1
//B = any-thing
//C = yes
//D = /some/path/file
get_cfg_var('A') // returns '1'
get_cfg_var('B') // returns 'any-thing'
get_cfg_var('C') // returns '1', wait, why?
get_cfg_var('D') // returns '/some/path/file'
?>
I had my setting = yes and then checked it as ==="yes" for epic fail.
Boolean-like values are evaluated as follows: "true", "on", "yes" evaluate to "1" (string 1), while "false", "off", "no" evaluate to "" (empty string).
keep in mind get_cfg_var() returns a string(1) '1' for the value: On
<?php
//in php.ini
//A = On
$A1 = get_cfg_var("A") === "On";
$A2 = get_cfg_var("A") === 1;
$A3 = get_cfg_var("A") === "1";
//$A1 is false
//$A2 is false
//$A3 is true
?>
The difference between ini_get() and get_cfg_var() is as follows:
@) ini_get(): returns the current value in .htaccess or as defined in PHP_INI_USER or PHP_INI_PERDIR
@) get_cfg_var: returns the values defined in the php.ini