求解释如下PHP thinkphp框架中的大C函数获取值的代码
functionC($name=null,$value=null,$default=null){//DEFAULT_ERRLG_TIME=1static$_config=...
function C($name=null, $value=null,$default=null) { //DEFAULT_ERRLG_TIME=1
static $_config = array();
// 无参数时获取所有
if (empty($name)) {
return $_config;
}
// 优先执行设置获取或赋值
if (is_string($name)) {
if (!strpos($name, '.')) {
$name = strtoupper($name);
if (is_null($value))
return isset($_config[$name]) ? $_config[$name] : $default;
$_config[$name] = $value;
return;
}
// 二维数组设置和获取支持
$name = explode('.', $name);
$name[0] = strtoupper($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,CASE_UPPER));
return;
}
return null; // 避免非法参数
这是我用的后台中设置的用来设置和获取值的函数 大C,
在很多地方都可以用到它,而且有一种它能匹配任何条件的获取能力。。。
例如别的地方用到:C('DEFAULT_ERRLG_NUM') 这个括号里面的字段值=1
还例如
function pwd($upwd){
return md5(C('PWEncodeKey') .md5($upwd)); 这个C函数中的值就是这个'PWEncodeKey'字符串
}
那么问题来了!!假设我现在用C(1) ,我现在根本看不懂返回值是什么!请明白人回答!
还有个问题就是这个C函数里面不是有三个参数吗,
C($name=null, $value=null,$default=null)
那么C(1)不就默认等于是$name嘛,相当于C( 1, ' ' , ' ' )吗?怎么会无法接收1这个值呢。因为参数都给了默认值,所以给它参数就会替换,不给就是NULL啊,我的逻辑不对吗 展开
static $_config = array();
// 无参数时获取所有
if (empty($name)) {
return $_config;
}
// 优先执行设置获取或赋值
if (is_string($name)) {
if (!strpos($name, '.')) {
$name = strtoupper($name);
if (is_null($value))
return isset($_config[$name]) ? $_config[$name] : $default;
$_config[$name] = $value;
return;
}
// 二维数组设置和获取支持
$name = explode('.', $name);
$name[0] = strtoupper($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,CASE_UPPER));
return;
}
return null; // 避免非法参数
这是我用的后台中设置的用来设置和获取值的函数 大C,
在很多地方都可以用到它,而且有一种它能匹配任何条件的获取能力。。。
例如别的地方用到:C('DEFAULT_ERRLG_NUM') 这个括号里面的字段值=1
还例如
function pwd($upwd){
return md5(C('PWEncodeKey') .md5($upwd)); 这个C函数中的值就是这个'PWEncodeKey'字符串
}
那么问题来了!!假设我现在用C(1) ,我现在根本看不懂返回值是什么!请明白人回答!
还有个问题就是这个C函数里面不是有三个参数吗,
C($name=null, $value=null,$default=null)
那么C(1)不就默认等于是$name嘛,相当于C( 1, ' ' , ' ' )吗?怎么会无法接收1这个值呢。因为参数都给了默认值,所以给它参数就会替换,不给就是NULL啊,我的逻辑不对吗 展开
1个回答
展开全部
C(1)的返回值当然是Null,是一个空值啊
C方法在ThinkPHP中 是作为获取和设置配置属性的方法
在框架运行中 首先设置了 框架内 convention.php 里面对应的字段和值
然后就是 项目 config.php里设置的值,你所说的 PWEncodeKey 应该就是定义在这里,所以你在后面用C('PWEncodeKey')才可以获取到
还有这段代码也很好了解,你用的C(1) 1是一个int类型也就是数字,C方法是不能接受的,直接跑到最后一行 return null
还有 C('PWEncodeKey') 根据字面理解 这个是获得 密码对应的加密字符串
给你一个建议,不要一上来就学习ThinkPHP框架,要把基础学习好,向这个问题 你直接看源代码就很好理解的
C方法在ThinkPHP中 是作为获取和设置配置属性的方法
在框架运行中 首先设置了 框架内 convention.php 里面对应的字段和值
然后就是 项目 config.php里设置的值,你所说的 PWEncodeKey 应该就是定义在这里,所以你在后面用C('PWEncodeKey')才可以获取到
还有这段代码也很好了解,你用的C(1) 1是一个int类型也就是数字,C方法是不能接受的,直接跑到最后一行 return null
还有 C('PWEncodeKey') 根据字面理解 这个是获得 密码对应的加密字符串
给你一个建议,不要一上来就学习ThinkPHP框架,要把基础学习好,向这个问题 你直接看源代码就很好理解的
更多追问追答
追问
好的谢谢,我还没有学习框架就来看别人的代码了,所以不太懂。那么问题来了
我如果想接着看明白我的后台功能,是不是我暂时不用去仔细想C、F一类的框架函数啊,我只需要根据文档知道这玩意儿能做什么并且能返回什么值就好了吧
追答
C、F一类的框架?我不太明白 是 ci和zend framework?
如果你只是希望完成这个项目的话,只需要看对应框架的文档即可
thinkphp因为是国产,文档也很完善 你可以去官网看
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询