thinkphp函数学习(3): C函数详解

function C($name=null, $value=null,$default=null) {

    static $_config = array();

    // 无参数时获取所有

    if (empty($name)) {

        return $_config;

    }

    // 优先执行设置获取或赋值

    if (is_string($name)) {

        if (!strpos($name, '.')) {

            $name = strtolower($name);

            if (is_null($value))

                return isset($_config[$name]) ? $_config[$name] : $default;

            $_config[$name] = $value;

            return;

        }

        // 二维数组设置和获取支持

        $name = explode('.', $name);

        $name[0]   =  strtolower($name[0]);

        if (is_null($value))

            return isset($_config[$name[0]][$name[1]]) ? $_config[$name[0]][$name[1]] : $default;

        $_config[$name[0]][$name[1]] = $value;

        return;

    }

    // 批量设置

    if (is_array($name)){

        $_config = array_merge($_config, array_change_key_case($name));

        return;

    }

    return null; // 避免非法参数

}

这是thinkphp中function.php里面定义的函数。 

详解:

此函数功能有:

1、获得$_config数组,其中保存着配置信息(静态变量只初始化一次,函数执行完毕,值不会消失)

print_r(C()); // 这样能获得所有已读取或设置的配置信息

2、读取配置的值

echo C('key');

echo C('key.subkey');

//二维数组的读取,对应的配置文件结构为

return array(

  'key'=>array('subkey','value'),

)

  

3、动态添加配置

C('key','value');

C('key.subkey','value');

  

C函数实现的关键点:

1、static $_config = array(); 把$_config设置为静态变量,使其能够存储值

2、配置文件的写法。

return $arr = array(

    'key1'=>'value';

    'key2'=>array('subkey','value'),        

);

/*

注意开头的return,当include这个文件时,返回的就是这个return返回的值

*/

启发:

开发项目的时候可以借鉴,这个函数处理系统的配置还是很好用的。  

  

 

 

你可能感兴趣的:(thinkphp)