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.支持表达式 ...
随机推荐
- JavaWEB开发入门
1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: •静态web资源(如html 页面 ...
- 基于CGAL的Delaunay三角网应用
目录 1. 背景 1.1 CGAL 1.2 cgal-bindings(Python包) 1.3 vtk-python 1.4 PyQt5 2. 功能设计 2.1 基本目标 2.2 待实现目标 3. ...
- POJ 2418 简单trie树
Hardwood Species Time Limit: 10000MS Memory Limit: 65536K Total Submissions: 21845 Accepted: 8551 De ...
- C#将文件压缩成一个文件流,供前端下载
直接上代码供大家参考... 前端页面就是一个下载的Button.. <body> <form id="form1" runat="server" ...
- Oracle 循环调用存储过程
create or replace procedure p_test_loop as --定义一个游标,并将查询结果集赋值给它 CURSOR c1 IS select * from tbltest w ...
- OpenCV:OpenCV目标检测Adaboost+haar源代码分析
使用OpenCV作图像检测, Adaboost+haar决策过程,其中一部分源代码如下: 函数调用堆栈的底层为: 1.使用有序决策桩进行预测 template<class FEval> i ...
- 读白帽子web安全笔记
点击劫持 frame buseting if (top.location != location) { top.location = self.location } html5的sandbox属性 ...
- (转)Redis研究(一)—简介
http://blog.csdn.net/wtyvhreal/article/details/41855327 Redis是一个开源的高性能键值对数据库.它通过提供多种键值数据类型来适应不同场景下的存 ...
- (转) OpenLayers3基础教程——OL3 介绍control
http://blog.csdn.net/gisshixisheng/article/details/46761535 概述: 本文讲述的是Ol3中的control的介绍和应用. OL2和OL3 co ...
- 新浪某个tab 页模仿
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...