From af431ce8e9f7759e938b6535bde68ade3cd1caa8 Mon Sep 17 00:00:00 2001 From: vlakoff Date: Fri, 19 Jul 2013 02:06:41 +0200 Subject: Fix config_item() returning stale values Use case fixed: config_item('foobar'); // returns "some value" $CI->config->set_item('foobar', 'new value'); config_item('foobar'); // still returns "some value", expected "new value" --- system/core/Common.php | 15 +++++---------- 1 file 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; } } -- cgit v1.2.3-24-g4f1b From cead4ccbcc6f9d6d8e2a65f69acd5196d05e75af Mon Sep 17 00:00:00 2001 From: vlakoff Date: Fri, 19 Jul 2013 02:17:21 +0200 Subject: Remove documentation note obsoleted by previous commit --- user_guide_src/source/general/common_functions.rst | 4 ---- 1 file changed, 4 deletions(-) diff --git a/user_guide_src/source/general/common_functions.rst b/user_guide_src/source/general/common_functions.rst index a133fdc6d..32e8a8be0 100644 --- a/user_guide_src/source/general/common_functions.rst +++ b/user_guide_src/source/general/common_functions.rst @@ -68,10 +68,6 @@ accessing configuration information, however ``config_item()`` can be used to retrieve single keys. See :doc:`Config Library <../libraries/config>` documentation for more information. -.. important:: This function only returns values set in your configuration - files. It does not take into account config values that are - dynamically set at runtime. - show_error() ============ -- cgit v1.2.3-24-g4f1b