页次: 1
示例
var_dump(get_config()['charset']);
get_config 的工作原理是什么?
源代码了写的最清楚了,get_config 的源代码
function &get_config($replace = array()) { static $_config; // 用一个静态变量来存储配置信息, 不用每次都读取,配置文件,这样一定程度上提高了系统的性能。 // 存在就直接返回 if (isset($_config)) { return $_config[0]; } // Is the config file in the environment folder? // 根据不同的配置获得配置文件的绝对路径 if (!defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH . 'config/' . ENVIRONMENT . '/config.php')) { $file_path = APPPATH . 'config/config.php'; } // Fetch the config file if (!file_exists($file_path)) { exit('The configuration file does not exist.'); } // 这里, 在这个运行的函数中 存在 $config 变量, 离开这个函数就没有 $config , // 这一点可以避免增加全局变量, 也不会和用户定义的 $config 变量有冲突。 // 所以再程序中也不能使用 $config 变量。 require($file_path); // Does the $config array exist in the file? // 这里的 $config 变量是来自文件中的。 if (!isset($config) OR ! is_array($config)) { exit('Your config file does not appear to be formatted correctly.'); } // Are any values being dynamically replaced? // 通过参数可以增加或者替换配置文件 if (count($replace) > 0) { foreach ($replace as $key => $val) { if (isset($config[$key])) { $config[$key] = $val; } } } // 返回结果 return $_config[0] = & $config; }
ipbbs.net
离线
页次: 1