ThinkPHP C 方法
C 方法是 ThinkPHP 内置的特殊方法,用于在操作和模板里读取配置文件里的配置信息或者动态配置参数。语法如下:
C( para_name, value )
参数说明
如果只有 para_name 参数时,表示读取 para_name 配置参数的值;para_name 与 value 都存在时,表示设置 para_name 参数的值为 value。
C 方法读取配置参数值
假设项目配置里有如下配置信息:
/* Cookie设置 */
'COOKIE_EXPIRE' => 3600, // Coodie有效期
'COOKIE_DOMAIN' => '.5idev.com', // Cookie有效域名
'COOKIE_PATH' => '/', // Cookie路径
'COOKIE_PREFIX' => '', // Cookie前缀
/* 网站设置 */
'SITE_NAME' => '我爱开发网', // 站点名字
'DOMAIN_NAME' => '5idev.com', // 域名
'NO_ARTICLE_VIEW' => '抱歉:您请求的文章不存在,系统已记录该错误。请继续访问本站其他内容。',
例子 1
下面是在操作里面读取配置参数的例子:
setcookie( 'user_name',$user_name,C('COOKIE_EXPIRE'),C('COOKIE_PATH'),C('COOKIE_DOMAIN') );
上面是一个设置 cookie 的例子,例子里利用 C 方法读取了配置文件里 Cookie 设置的配置参数。
例子 2
下面是在模板里面读取配置参数的例子:
{:C('SITE_NAME')}在模板里读取并输出配置信息,还可以使用下面的方法:
{$Think.config.SITE_NAME}实际输出的 HTML 代码为:
我爱开发网读取二维配置
配置文件中支持二维数组的配置,那么要读取二维配置,可以使用 . 符号来表示层级:
C('SITE_CONFIG.DOMAIN_NAME')
提示:当读取的参数没有在配置文件里定义时,C 方法返回 NULL。
ThinkPHP 动态配置
ThinkPHP 惯例配置与项目配置都是通过预先定义配置文件的方式来配置需要的参数,而在具体的操作方法里面,还可以通过 C 方法来动态改变或新增配置参数。
下面的例子将 Coodie 有效期变更为 7200 秒:
C('COOKIE_EXPIRE',7200);
同样动态配置二维数组参数,通过 . 符号来区分层级关系:
C('SITE_CONFIG.DOMAIN_NAME','example.com')
提示:动态配置优于项目配置和惯例配置,因此如果动态配置的参数已经在配置文件里定义过,将覆盖已经配置的配置选项。