php c源码学习,ThinPHP源码分析之C函数

在翻看TP源码时发现一个C函数,编者对其做了注释,函数定义如下:// 获取配置值

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

//此方法是一个变量库,static变量每次都会保存下来

static $_config = array();

// 无参数时获取所有

if (empty($name))

return $_config;

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

if (is_string($name)) {

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

$name = strtolower($name);

if (is_null($value))

//若$value为不空表明是变量注册,为空表明是变量查找

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

$_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]] : null;

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

return;

}

// 批量设置

if (is_array($name))

//若$name为数组,则返回所有的配置变量

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

return null; // 避免非法参数

}

注意$_config变量前有static修饰,所以$_config在内存中存在于静态数据段,只要TP程序还在运行,其值将一直存在。C()函数有两种用法,若只传一个参数,表示查找常量。若传两个参数,表示常量注册。

还有一点需要说明的是include()的返回值是什么呢?

include()的返回值一般情况下要包含的文件存在则返回true,不存在则返回false。但是,当要包含的文件中有return的时候include()的返回值是所return的值而不是true OR false。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值