博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkphp C函数的实现原理
阅读量:6851 次
发布时间:2019-06-26

本文共 1272 字,大约阅读时间需要 4 分钟。

hot3.png

在写一个php原生函数的时候,想起使用thinkphp的C函数读取数据库配置非常方便,于是看了看源码的实现,原理很简单,分享一下:

下面是common.php,实现了C函数:

if(is_file("config.php") ){    // config.php文件返回一个数组    // C函数判断是一个数组,则会将这个数组赋值给 $_config,下面我们用在这个变量里面读取配置     C(include 'config.php');}// 获取配置值function C($name=null, $value=null) {    //静态全局变量,后面的使用取值都是在 $)config数组取    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] : 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;    }    // include 'config.php' 返回的是一个数组,这个数组作为C函数的参数,所以会跳到这里,然后将数组的值返回给 $_config     if (is_array($name)){        return $_config = array_merge($_config, array_change_key_case($name));    }    return null; // 避免非法参数}

使用方法很简单:在需要使用C函数的地方 :

include 'common.php';

即可。

 

转载于:https://my.oschina.net/ifeixiang/blog/339409

你可能感兴趣的文章
linux 笔记
查看>>
Firefox常用插件介绍
查看>>
Safari获取UDID需要安装.mobileconfig文件,
查看>>
UIProgressView
查看>>
python基础3-列表、元组、字典、集合的使用延伸
查看>>
负边距在布局中的使用
查看>>
【Java例题】5.2 数组转换
查看>>
Excel设置字体,程序无响应的解决方法
查看>>
Spring 5 新特性:函数式Web框架
查看>>
014.存储过程(sql实例)
查看>>
WGDC2019第八届全球地理信息开发者大会(北京)
查看>>
sql 随笔
查看>>
二次函数习题
查看>>
MySQL中 MySQL X.X Command Line Client 一闪而过
查看>>
VBScript:WshShortcut 快捷方式对象
查看>>
第二章 java数据类型 !!!
查看>>
编译原理实验7
查看>>
ZOJ1092 POJ2240
查看>>
Hadoop HDFS文件操作的Java代码
查看>>
jqGrid的若干种用法
查看>>