ThinkPHP3.2框架自定义配置和加载用法示例


Posted in PHP onJune 14, 2018

本文实例讲述了ThinkPHP3.2框架自定义配置和加载用法。分享给大家供大家参考,具体如下:

有时候我们会有一些规则定义每个数字对应的实际内容,比如说在下拉菜单的时候:

<select name="reasonAndType" id="">
  <option value="1">查询物流</option>
  <option value="2">办理退货</option>
  <option value="3">咨询退货</option>
  <option value="4">咨询佣金</option>
  <option value="5">咨询规则</option>
  <option value="0">其他</option>
</select>

ThinkPHP3.2框架自定义配置和加载用法示例←实际效果

ThinkPHP3.2框架自定义配置和加载用法示例←数据库存的效果

ThinkPHP3.2框架自定义配置和加载用法示例←显示的时候。

这个例子里,实际显示的是汉字,实际的value值是数字,等我们向数据库存的时候也是存数字,等我们从数据库获取的时候也是取数字,显示的时候也是显示汉字;

所以我们需要一个类似字典的东西,它定义了那个数字对应的汉字是什么,定义的实际意义是什么;

用数据库能够实现这个效果,但我们不用,因为对数据库的操作开销太大;

如果是普通的PHP环境,我们可以把规则单独存到一个文件里,内容是一个数组:

type.PHP

$type = array(
'1' => '查询物流',
'2' => '办理退货',
'3' => '咨询退货',
'4' => '咨询佣金',
'5' => '咨询规则',
'0' => '其他'
);

就像上面代码那样,定义好之后,存成一个文件,当我们需要调用这个这个规则的时候,就include或者require,然后直接用$type这个变量去找就行了,比如:

require_once('type.php');
echo $type[1]; //输出'查询物流'
foreach($type as $k => $v){ //直接打印出最上面的下拉菜单代码,
echo "<option value = '{$k}' >{$v}</option>";
}

如果在ThinkPHP,要是想引入文件,只能用绝对路径,在include和require用__APP__或者__ROOT__快捷入口是不行的,U()造链函数我没试,应该是可以实现的。

还有一种实现方式,也是我在这里推荐的,就是直接把这套规则定义为这个网站的配置文件,当我们用的时候,用C()加载配置函数把这个数组加载出来赋给一个变量就好了。

上代码了:

把你定义的规则放到conf下,这是私有配置文件,只有Home这个入口的才生效,也可以放到公共配置文件下,细节可以去查手册。

return array(
'REASON_AND_TYPE' => array(
'1' => '查询物流',
'2' => '办理退货',
'3' => '咨询退货',
'4' => '咨询佣金',
'5' => '咨询规则',
'0' => '其他'
)
);

注意加上return;

注意,格式,return一个数组,键名是大写的(为了好看),键值是你要定义的东西,在这里我们定义的是一个数组。

修改config.php文件

<?php
return array(
//'配置项'=>'配置值'
'DB_TYPE' => 'mysqli', // 数据库类型
'DB_HOST' => 'localhost', // 服务器地址
'DB_NAME' => 'kefu', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => 'root', // 密码
'DB_PORT' => '', // 端口
'DB_PREFIX' => '', // 数据库表前缀
'LOAD_EXT_CONFIG' => 'reasonAndType', //这是我们自己添加的,LOAD_EXT_CONFIG键名固定,键值是你的php文件的文件名,那个数组名字在这里就不用管了
);

这就算配置好了。

下面讲调用这套规则:

$reasonAndTypeX = C('REASON_AND_TYPE');
//直接用数组名字就可以了,C()函数能加载配置里的键名所代表的值,赋给变量

注意,C()函数的里面的值,是reasonAndType这个文件的值。

var_dump($reasonAndTypeX);

就会输入这个数组的内容

array(
'1' => '查询物流',
'2' => '办理退货',
'3' => '咨询退货',
'4' => '咨询佣金',
'5' => '咨询规则',
'0' => '其他'
);

这样就完成了自定义配置文件的设置和加载。

如果‘REASON_AND_TYPE'没有配置,则会返回一个null值;

当然,你也可以设置默认值,代码如下:

// 如果REASON_AND_TYPE尚未设置的话,则返回default_config字符串
C('my_config',null,'default_config');

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP开发中常用的三个表单验证函数使用小结
Mar 03 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
取得单条网站评论以数组形式进行输出
Jul 28 PHP
php计算两个文件相对路径的方法
Mar 14 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
Dec 21 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 PHP
thinkPHP框架实现多表查询的方法
Jun 14 #PHP
php微信开发之关注事件
Jun 14 #PHP
thinkPHP框架动态配置用法实例分析
Jun 14 #PHP
php微信开发之谷歌测距
Jun 14 #PHP
php微信开发之图片回复功能
Jun 14 #PHP
php微信开发之音乐回复功能
Jun 14 #PHP
php微信开发之关键词回复功能
Jun 13 #PHP
You might like
星际争霸任务指南——人族
2020/03/04 星际争霸
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
Laravel模糊查询区分大小写的实例
2019/09/29 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
Array, Array Constructor, for in loop, typeof, instanceOf
2011/09/13 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
Node.js开发者必须了解的4个JS要点
2016/02/21 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
使用Python 统计高频字数的方法
2019/01/31 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
python命令 -u参数用法解析
2019/10/24 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
幼儿园中秋节活动方案2013
2014/01/29 职场文书
打架检讨书300字
2014/02/02 职场文书
工会主席岗位责任制
2014/02/11 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
青年教师师德演讲稿
2014/08/26 职场文书
乡镇机关党员民主评议表自我评价
2014/09/21 职场文书
不听老师话的万能检讨书
2014/10/04 职场文书
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL