ThinkPHP模版引擎之变量输出详解
ThinkPHP模版引擎之变量输出详解
我们已经知道了在Action中使用assign方法可以给模板变量赋值,赋值后怎么在模板文件中输出变量的值呢?
如果我们在Action中赋值了一个name模板变量:
$name = 'ThinkPHP';$this->assign('name',$name);
使用内置的模板引擎输出变量,只需要在模版文件使用:
{$name}
模板编译后的结果就是
<?php echo($name);?>
最后运行的时候就可以在标签位置显示ThinkPHP的输出结果,注意模板标签的{和$之间不能有任何的空格,否则标签无效。普通标签默认开始标记是 {,结束标记是 },也可以通过设置TMPL_L_DELIM和TMPL_R_DELIM进行更改,例如,我们在项目配置文件中定义:
'TMPL_L_DELIM'=>'<{', 'TMPL_R_DELIM'=>'}>',
那么,上面的变量输出标签就应该改成:
后面的内容我们都以默认的标签定义来说明,assign方法里面的第一个参数才是模板文件中使用的变量名称,如果改成下面的代码:
$name = 'ThinkPHP';$this->assign('name2',$name);
再使用{$name} 输出就无效了,必须使用 {$name2}才能输出模板变量的值了.如果我们需要把一个用户数据对象赋值给模板变量:
$User = M('name');$user = $User->find(1);$this->assign('user',$user);
也就是说$user其实是一个数组变量,我们可以使用下面的方式来输出相关的值:
{$user['name']}//输出用户的名称{$user['email']} //输出用户的email地址
如果$user是一个对象而不是数组的话.
$User = M('name');$User->find(1);$this->assign('user',$User);
可以使用下面的方式输出相关的属性值:
{$user:name}// 输出用户的名称{$user:email} // 输出用户的email地址
3.1版本以后,类的属性输出方式有所调整,支持原生的PHP对象写法,所以上面的标签需要改成:
{$user->name}// 输出用户的名称{$user->email} // 输出用户的email地址
为了方便模板定义,还可以支持点语法,例如,上面的
{$user['name']}// 输出用户的名称{$user['email']} // 输出用户的email地址
可以改成
{$user.name}{$user.email}
因为点语法默认的输出是数组方式,所以上面两种方式是在没有配置的情况下是等效的,我们可以通过配置TMPL_VAR_IDENTIFY参数来决定点语法的输出效果,以下面的输出为例:{$user.name}
如果TMPL_VAR_IDENTIFY设置为array,那么
{$user.name}和{$user['name']}等效,也就是输出数组变量.
如果TMPL_VAR_IDENTIFY设置为obj,那么
{$user.name}和{$user:name}等效,也就是输出对象的属性。
如果TMPL_VAR_IDENTIFY留空的话,系统会自动判断要输出的变量是数组还是对象,这种方式会一定程度上影响效率,而且只支持二维数组和两级对象属性。
如果是多维数组或者多层对象属性的输出,可以使用下面的定义方式:
{$user.sub.name}//使用点语法输出
或者使用
{$user['sub']['name']}// 输出三维数组的值 {$user:sub:name}// 输出对象的多级属性
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
参考来源:
ThinkPHP模版引擎之变量输出详解
http://www.lai18.com/content/369153.html
延伸阅读
《PHP框架ThinkPHP学习》系列技术文章整理收藏
1Thinkphp实现MySQL读写分离操作示例
2使用ThinkPHP+Uploadify实现图片上传功能
3ThinkPHP调用百度翻译类实现在线翻译
4Thinkphp使用mongodb数据库实现多条件查询方法
5ThinkPHP实现多数据库连接的解决方法
6改写ThinkPHP的U方法使其路由下分页正常
7ThinkPHP实现将SESSION存入MYSQL的方法
8ThinkPHP连接数据库及主从数据库的设置教程
9ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
10ThinkPHP基于PHPExcel导入Excel文件的方法
11thinkphp获取栏目和文章当前位置的方法
12ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
13ThinkPHP无限级分类原理实现留言与回复功能实例
14ThinkPHP在新浪SAE平台的部署实例
15ThinkPHP控制器间实现相互调用的方法
16ThinkPHP实现带验证码的文件上传功能实例
17ThinkPHP写数组插入与获取最新插入数据ID实例
18ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
19thinkphp使用literal防止模板标签被解析的方法
20ThinkPHP中RBAC类的四种用法分析
21ThinkPHP中__initialize()和类的构造函数__construct()用法分析
22ThinkPHP自动完成中使用函数与回调方法实例
23ThinkPHP实现动态包含文件的方法
24thinkphp实现发送邮件密码找回功能实例
25ThinkPHP实现支付宝接口功能实例
26Thinkphp搜索时首页分页和搜索页保持条件分页的方法
27ThinkPHP入口文件设置及相关注意事项分析
28ThinkPHP模版引擎之变量输出详解
29thinkphp实现上一篇与下一篇的方法
30ThinkPHP中url隐藏入口文件后接收alipay传值的方法
31ThinkPHP打开验证码页面显示乱码的解决方法
32ThinkPHP中使用ajax接收json数据的方法
33ThinkPHP内置jsonRPC的缺陷分析
34thinkphp3.0输出重复两次的解决方法
35thinkPHP实现表单自动验证
36Thinkphp中的curd应用实用要点
37浅谈thinkphp的实例化模型
38ThinkPHP 404页面的设置方法
39THINKPHP内容分页代码分享
40在Nginx上部署ThinkPHP项目教程
41浅析THINKPHP的addAll支持的最大数据量
42ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
43ThinkPHP3.2.2的插件控制器功能
44ThinkPHP3.2.3数据库设置新特性
45ThinkPHP 3.2 版本升级了哪些内容
46thinkPHP学习笔记之安装配置篇
47Thinkphp调用Image类生成缩略图的方法
48解决ThinkPHP关闭调试模式时报错的问题汇总
49ThinkPHP文件缓存类代码分享
版权声明:本文为博主原创文章,未经博主允许不得转载。
- 1楼u0112524026小时前
- 总结学习

thinkphp是国产框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了关于使用think-queue来实现普通队列和延迟队列的相关内容,think-queue是thinkphp官方提供的一个消息队列服务,下面一起来看一下,希望对大家有帮助。

thinkphp基于的mvc分别是指:1、m是model的缩写,表示模型,用于数据处理;2、v是view的缩写,表示视图,由View类和模板文件组成;3、c是controller的缩写,表示控制器,用于逻辑处理。mvc设计模式是一种编程思想,是一种将应用程序的逻辑层和表现层进行分离的方法。

本篇文章给大家带来了关于thinkphp的相关知识,其中主要介绍了使用jwt认证的问题,下面一起来看一下,希望对大家有帮助。

thinkphp扩展有:1、think-migration,是一种数据库迁移工具;2、think-orm,是一种ORM类库扩展;3、think-oracle,是一种Oracle驱动扩展;4、think-mongo,一种MongoDb扩展;5、think-soar,一种SQL语句优化扩展;6、porter,一种数据库管理工具;7、tp-jwt-auth,一个jwt身份验证扩展包。

thinkphp查询库是否存在的方法:1、打开相应的tp文件;2、通过“ $isTable=db()->query('SHOW TABLES LIKE '."'".$data['table_name']."'");if($isTable){...}else{...}”方式验证表是否存在即可。

本篇文章给大家带来了关于ThinkPHP的相关知识,其中主要整理了使用think-queue实现redis消息队列的相关问题,下面一起来看一下,希望对大家有帮助。

在thinkphp3.2中,可以利用define关闭调试模式,该标签用于变量和常量的定义,将入口文件中定义调试模式设为FALSE即可,语法为“define('APP_DEBUG', false);”;开启调试模式将参数值设置为true即可。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能