function C($name = null, $value = null)
{
static $config = array();
if (is_null($name)) {
return $config;
} else if (is_string($name)) {
$name = strtoupper($name);
$data = array_change_key_case($config, CASE_UPPER);
if (!strstr($name, '.')) {
//获得配置
if (is_null($value)) {
return isset($data[$name]) ? $data[$name] : null;
} else {
return $config[$name] = isset($data[$name]) && is_array($data[$name]) && is_array($value) ? array_merge($config[$name], $value) : $value;
}
} else {
//二维数组
$name = array_change_key_case(explode(".", $name));
if (is_null($value)) {
return isset($data[$name[0]][$name[1]]) ? $data[$name[0]][$name[1]] : null;
} else {
return $config[$name[0]][$name[1]] = $value;
}
}
} else if (is_array($name)) {
return $config = array_merge($config, array_change_key_case($name, CASE_UPPER));
}
}
本文介绍了一个PHP中用于管理配置的静态函数functionC的工作原理。该函数能够处理不同类型的输入参数,实现配置项的获取与设置,支持一维及二维配置数组的操作。通过对源码的分析,读者可以了解其内部如何通过条件判断来区分不同的使用场景。
918

被折叠的 条评论
为什么被折叠?



