diff options
author | Andrey Andreev <narf@devilix.net> | 2013-07-19 12:11:50 +0200 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2013-07-19 12:11:50 +0200 |
commit | 29d884e308e26b2880b4f4285fbe9cf3a6f1e6e4 (patch) | |
tree | d57141f9042f97609a8ec3d47ef5fb5efab2c60e /system/core | |
parent | 12526cd2b8f69b5b283af0fb3c93ae81a8f4aada (diff) | |
parent | cead4ccbcc6f9d6d8e2a65f69acd5196d05e75af (diff) |
Merge pull request #2538 from vlakoff/develop-4
Fix config_item() returning stale values
Diffstat (limited to 'system/core')
-rw-r--r-- | system/core/Common.php | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/system/core/Common.php b/system/core/Common.php index 93cd0a0ae..b95a05db9 100644 --- a/system/core/Common.php +++ b/system/core/Common.php @@ -289,20 +289,15 @@ if ( ! function_exists('config_item')) */ function config_item($item) { - static $_config_item = array(); + static $_config; - if ( ! isset($_config_item[$item])) + if (empty($_config)) { - $config =& get_config(); - - if ( ! isset($config[$item])) - { - return FALSE; - } - $_config_item[$item] = $config[$item]; + // references cannot be directly assigned to static variables, so we use an array + $_config[0] =& get_config(); } - return $_config_item[$item]; + return isset($_config[0][$item]) ? $_config[0][$item] : FALSE; } } |