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'=>'}>',
那么,上面的变量输出标签就应该改成:
<{$name}>
后面的内容我们都以默认的标签定义来说明,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
延伸阅读
4Thinkphp使用mongodb数据库实现多条件查询方法
9ThinkPHP中pathinfo的訪问模式、路径訪问模式及URL重写总结
10ThinkPHP基于PHPExcel导入Excel文件的方法
12ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
18ThinkPHP水印功能实现修复PNG透明水印并添加JPEG图片质量可调整
19thinkphp使用literal防止模板标签被解析的方法
21ThinkPHP中__initialize()和类的构造函数__construct()使用方法分析
24thinkphp实现发送邮件password找回功能实例
26Thinkphp搜索时首页分页和搜索页保持条件分页的方法
30ThinkPHP中url隐藏入口文件后接收alipay传值的方法
ThinkPHP模版引擎之变量输出具体解释的更多相关文章
- thinkphp 模版引擎
系统支持原生的PHP模板,而且本身内置了一个基于XML的高效的编译型模板引擎,系统默认使用的模板引擎是内置模板引擎,关于这个模板引擎的标签详细使用可以参考模版引擎部分. 内置的大理石平台检定规程模板引 ...
- Thinkphp 模版
1.显示模版 在Home/Controller/MainController.class.php中写一个方法来显示对应的模版 function text() { //变量输出 $this->as ...
- thinkphp 模板变量输出替换和赋值
一.变量输出的几个方法 <?php namespace app\index\controller; use http\Params; use think\Config; use think\Co ...
- thinkphp 变量输出
在模板中输出变量的方法很简单,例如,在控制器中我们给模板变量赋值: 大理石平台支架 $name = 'ThinkPHP'; $this->assign('name',$name); $this- ...
- GoFrame 模板引擎对变量转义输出- XSS 漏洞
GoFrame 模板引擎对变量转义输出- XSS 漏洞 环境: gf v1.14.4 go 1.11 官网说明 默认情况下,模板引擎对所有的变量输出并没有使用HTML转码处理,也就是说,如果开发者处理 ...
- T4教程1 T4模版引擎之基础入门
T4模版引擎之基础入门 额,T4好陌生的名字,和NuGet一样很悲催,不为世人所熟知,却又在背后默默无闻的奉献着,直到现在我们项目组的人除了我之外,其它人还是对其豪无兴趣,基本上是连看一眼都懒得看 ...
- 黄聪:VS2010开发T4模版引擎之基础入门
原文:http://www.cnblogs.com/lzrabbit/archive/2012/07/15/2591085.html 额,T4好陌生的名字,和NuGet一样很悲催,不为世人所熟知,却又 ...
- T4模版引擎之基础入门
额,T4好陌生的名字,和NuGet一样很悲催,不为世人所熟知,却又在背后默默无闻的奉献着,直到现在我们项目组的人除了我之外,其它人还是对其豪无兴趣,基本上是连看一眼都懒得看,可怜的娃啊... T4(T ...
- Java模版引擎:jsp、freemarker、velocity区别
在java领域,表现层技术主要有三种:jsp.freemarker.velocity. jsp是大家最熟悉的技术优点:1.功能强大,可以写java代码2.支持jsp标签(jsp tag)3.支持表达式 ...
随机推荐
- fopen文件目录问题
程序当前目录下.如果是在 VC 里面运行的, 这个目录是工程的目录. 如果是双击 exe 运行的, 这个目录就是 exe 所在的目录.
- SiteMesh3使用实例和详解
一.SiteMesh介绍 SiteMesh是一个网页布局和修饰的框架,利用它可以将网页的内容和页面结构分离,以达到页面结构共享的目的.[来自百度百科] 通俗的理解就是,SiteMesh把页面中变化的和 ...
- Python 45 长度及颜色单位 、字体样式 、文本样式 、背景样式 、css基础选择器
一:长度及颜色单位 长度单位 px(像素) in(英寸) pt(点),一个标准的长度单位,1pt = 1/72in mm(毫米) cm ...
- mybatis的二级缓存
在mybatis主配置文件里configuration标签里添加 <settings> <setting name="cacheEnabled" value=&q ...
- python 3:str.upper()与str.lower()(使字符串字母全部大写或小写)
name = "Hello,World! Hello,Python!" print(name.upper()) #字母全部大写 print(name.lower()) #字母全部小 ...
- A - High School: Become Human
Problem description Year 2118. Androids are in mass production for decades now, and they do all the ...
- MVC微信浏览器图片上传(img转Base64)
因公司业务需要,需要做一个微信公众号里的图片上传功能,主要用到的技术就是 img转base64 上到服务器 话不多说, 贴代码 先看前端显示出来的东西 OK 图片不重要,看代码 <!--微信图片 ...
- PHP 框架Laravel Eloquent 实现身份验证
PHP自从5.3后似乎又热度又回升, 最近了解了一下PHP框架之一Laravel, 最近最新的版本已经是4.3 基本的结构这里不讲, 要了解可以在这里看文档 http://v4.golaravel. ...
- 24 javascript best practices for beginner(only 23 finally)
原文是英文,链接: http://net.tutsplus.com/tutorials/JavaScript-ajax/24-JavaScript-best-practices-for-beginne ...
- iconfont在ios(safari)中的坑
最近公司决定将项目图标整体迁移到iconfont,按网上常规方法,在安卓.pc端都没问题,唯独在ios的safari浏览器及微信内置浏览器中,iconfont始终在正常位置向下偏移,导致图标错乱. 网 ...