ThinkPHP的PHP变量传递到模板原理浅析
来源:互联网 发布:数据新闻可视化 编辑:程序博客网 时间:2024/05/20 04:27
程序员就应该是站在前人的肩膀上前进,所以,分析优秀的开源产品以及框架我觉得是程序员必做事情。
最近在尝试自己独立编写一个程序,在后台用到了php模板,简单来说,就是模板中用原生态的PHP代码做循环、显示内容。
$this->display();
这个对于使用thinkphp的朋友应该是很熟悉了,就是一个引用模板的代码,我也是这么做的。开始的时候,我是这么写的
$list = $this->query('select * from %pre%yiciconf where left(`key`,4)=\'sys_\'');$setting = array();if (!empty($list)) {foreach ($list as $value){$setting[$value['key']] = $value['value'];}}$this->display();
模板中居然报错,说找不到setting,悲剧啊,因为模板的引用在display中,所以这里声明的变量根本没法进去,都是类方法,这是闹哪样,蛋碎。
开始也想过global来进行超全局传递,但是想想,貌似效率不高,而且每个引用的都这么写,想想越写越多,都是难以维护以及阅读的事情。必须让自己以及阅读者知道这个变量引用到模板中了,于是我眼睛紧盯
$this->assign()
总体来说,大致流程如下:
1、声明一个初始值为array()的类变量
protected $_var = array();
2、使用方法assign将局部变量传递到类变量中
$this->_var[$name] = $value;
3、在方法display中,使用extract函数将$this->_var分解成当前方法的局部变量,然后在display中应用模板
include $tplfile;
最后:
$list = $this->query('select * from %pre%yiciconf where left(`key`,4)=\'sys_\'');$setting = array();if (!empty($list)) {foreach ($list as $value){$setting[$value['key']] = $value['value'];}}$this->assign('setting', $setting);$this->display();
- ThinkPHP的PHP变量传递到模板原理浅析
- php-变量的传递
- 输出php传递给模板文件的索引数组变量,关联数组变量
- Thinkphp 模板变量输出
- ThinkPHP 模板变量输出
- Thinkphp 模板->变量输出
- [Django模板系统]用locals()传递变量到模板
- django模板注入(变量传递到模板)
- django模板注入(变量传递到模板)
- 输出php传递给模板文件的普通变量及对象
- smarty模板引擎变量的传递方法
- smarty模板 将php数组传递给js变量
- thinkphp模板中变量输出
- 【ThinkPHP】变量输出至模板
- Thinkphp 模板->系统变量输出
- ThinkPHP框架配置自定义的模板变量(十)
- 关于thinkphp模板引擎中变量输入的思考
- thinkphp:模板中使用的系统变量和常量
- js验证 数字、正整数
- Type View requires API level 14 (current min is 4): <GridLayout>
- Building a LAMP Server
- 360手机卫士清理后台service的反制方案
- PHY
- ThinkPHP的PHP变量传递到模板原理浅析
- katta--索引的管理者
- android touch 事件分发和处理
- listview在activitygroup切换后无法点击的问题
- 面试
- 58同城自动登录
- 面试
- 重置magento后台用户密码
- perl把Excel一列复制