Thinkphp 模版
1.显示模版
在Home/Controller/MainController.class.php中写一个方法来显示对应的模版
function text()
{
//变量输出
$this->assign("text","Hello");
$attr=array("one"=>100,"two"=>200);
$this->assign("shuzu",$attr);
//使用运算符,注册两个变量
$this->assign("a",10);
$this->assign("b",15);
//三元运算符
$this->assign("pd",false);
$this->display();
}
在Home/View/Main中新建一个文件text.html
<body>
<h1>测试页面</h1>
1.变量输出
<div><{$text}></div>
<!--取数组内容: -->
<div><{$shuzu["one"]}></div>
<div><{$shuzu.one}></div>
2.系统变量输出
<div><{$Think.server.script_name}></div>
3.常量输出
不带双下划线的常量输出(两种方式都可):
<div><{$Think.const.MODULE_NAME}></div>
<div><{$Think.MODULE_NAME}></div>
带双下划线的常量输出:
<div>__ROOT__</div>
<div>__ACTION__</div>
4.配置输出
<div><{$Think.config.db_charset}></div>
5.语言变量
<div><{$Think.lang.page_error}></div>
6.默认值输出
<div><{$user.nickname|default="这家伙很懒,什么也没留下"}></div>
7.使用运算符
<div>a*b=<{$a*$b}></div>
<div>a+b=<{$a+$b}></div>
<div>注意:在使用运算符的时候,不再支持点语法和常规的函数用法</div>
8.三元运算符
<div><{$pd?"男":"女"}></div>
<div>注意:三元运算符中暂时不支持点语法。</div>
9.包含文件
<include file="Main/Zi" />
运行结果:

2.模版继承:
模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。
模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),
然后继承(extend)该基础模板的子模板中就可以对基础模板中定义的区块进行重载。
因此,模板继承的优势其实是设计基础模板中的区块(block)和子模板中替换这些区块。
每个区块由<block></block>标签组成。
在Home/View/Main中新建文件 fu.html 和 zi.html

在Home/Controller/MainController.class.php中写一个方法
function Zi()
{
$this->display();
}
fu.html :
<body>
<block name="top">
<div>这是头部内容</div>
</block> <block name="zhong">
<div>这是主内容</div>
</block> <block name="foot">
<div>这是页脚</div>
</block> </body>
</html>
zi.html:
<extend name="fu" />
子模板完全继承父模版的内容:

若修改子模板:
<extend name="fu" />
<block name="zhong">
<div style="width:50%; height:50px; background-color:#9F9; color:#00F">主内容</div>
</block>
运行结果:

3.内置函数
3.1 if标签
在condition属性中可以支持eq等判断表达式,同上面的比较标签,但是不支持带有”>”、”<”等符号的用法,因为会混淆模板解析
注意条件的写法(双引号里面),注意else后面有"/"
<if condition="$b == 10">
<div>10</div>
<else/>
<div>20</div>
</if>

3.2 foreach 标签
foreach遍历数组,name的值为变量名(数组名),item的值为循环数组的每一项的值
<foreach name="shuzu" item="v" >
<div><{$v}></div>
</foreach>
3.3 volist 标签
volist标签通常用于查询数据集(select方法)的结果输出,通常模型的select方法返回的结果是一个二维数组,可以直接使用volist标签进行输出。
<volist name="list" id="vo">
{$vo.id}:{$vo.name}<br/>
</volist>
3.4 for 标签

开始值、结束值、步进值和循环变量都可以支持变量,开始值和结束值是必须,
其他是可选。comparison 的默认值是lt;;name的默认值是i,步进值的默认值是1,
举例如下:

3.5 switch case 标签

使用方法如下:

3.6 范围判断标签
范围判断标签包括in notin between notbetween四个标签,都用于判断变量是否中某个范围。


3.7 import 标签:导入外部JS和CSS文件的方法




4.原样输出:可以使用<literal></literal>标签来防止模板标签被解析
5. 模版注释
模板支持注释功能,该注释文字在最终页面不会显示,仅供模板制作人员参考和识别。



6.模版替换

Thinkphp 模版的更多相关文章
- thinkphp模版调用函数方法
原文:thinkphp模版调用函数方法 {变量|函数1|函数2|函数3=参数1,参数2,参数3,###} ###为第4个参数,代表变量替换为第4个参数 举例: {$username|substr=0, ...
- ThinkPHP模版引擎之变量输出具体解释
ThinkPHP模版引擎之变量输出具体解释 使用ThinkPHP开发有一定时间了,今日对ThinkPHP的模板引擎变量解析深入了解了一下.做出一些总结,分享给大家供大家參考. 详细分析例如以下: 我们 ...
- ThinkPHP 模版中的内置标签
内置标签就是模版引擎提供的一组可以完成控制.循环和判断功能的类似HTML语法的标签. 一.判断比较: 1.if标签进行条件判断 //if语句的完整格式 <if condition=&qu ...
- ThinkPHP模版验证要注意的地方
Model页面 <?php class LoginModel extends Model { //protected $tableName = 'userinfo'; //表名和model不一致 ...
- thinkphp模版主题使用方法
3.1.3模版主题使用方法,手册貌似没有.配置项: 'DEFAULT_THEME'=>'default',//默认主题 'THEME_LIST'=>'default,theme',//主题 ...
- thinkphp 模版引擎
系统支持原生的PHP模板,而且本身内置了一个基于XML的高效的编译型模板引擎,系统默认使用的模板引擎是内置模板引擎,关于这个模板引擎的标签详细使用可以参考模版引擎部分. 内置的大理石平台检定规程模板引 ...
- thinkphp模版常量替换机制
- THINKPHP模版控制循环输出
<volist name="data" id="vo"> <div class="case1_01 flexslider" ...
- ThinkPHP模版时间显示
<!-- 如果有日期输出,即$data.time不为空且不为0,则格式化时间戳,否则默认当前时间戳,并格式化成日期格式 --> {$data.time|default=time()|dat ...
随机推荐
- Windows平台下主要的内存管理途径
new / delete malloc / free CoTaskMemAlloc / CoTaskMemFree IMalloc::alloc / IMalloc/free G ...
- ASP.NET MVC 实现与SQLSERVER的依赖缓存
原文:ASP.NET MVC 实现与SQLSERVER的依赖缓存 本文主要是为了了解ASP.NET MVC 实现与SQLSERVER的依赖缓存的功能,针对自己对于这方面知识的学习的过程的一个记录.由于 ...
- java中利用RandomAccessFile读取超大文件
超大文件我们使用普通的文件读取方式都很慢很卡,在java中为我提供了RandomAccessFile函数,可以快速的读取超大文件并且不会感觉到卡哦,下面看我的一个演示实例. 服务器的日志文件往往达到4 ...
- js脚本同步、异步与延迟
一般,我们通过src引入js文件时建议在页面末尾引入,因为会阻塞页面的渲染.defer和async可以达到同样效果 当HTML解析器遇到<script>元素时,它必须先执行脚本,然后再恢复 ...
- cholesky分解
接着LU分解继续往下,就会发展出很多相关但是并不完全一样的矩阵分解,最后对于对称正定矩阵,我们则可以给出非常有用的cholesky分解.这些分解的来源就在于矩阵本身存在的特殊的 结构.对于矩阵 ...
- Java---IO加强(3)-IO流的操作规律
一般写关于操作文件的读取的几个通用步骤!!! 1.明确源和目的. 源:InputStream Reader 一定是被读取的. 目的:OutputStream Writer 一定是被写入的. 2.处理的 ...
- HDOJ(HDU) 1720 A+B Coming(进制)
Problem Description Many classmates said to me that A+B is must needs. If you can't AC this problem, ...
- [置顶] 【Git入门之九】解决冲突
原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309531 1.多人协作冲突 如果多人同时修改了同一个文件,那会出现什么样 ...
- java—— 笔记链接
深入Java关键字null 链接: http://tieba.baidu.com/f?kz=510289524 颜色代码 链接: http://wenku.baidu.com/link?url= ...
- 点击按钮弹出div,留用
<input type="button" onclick="document.getElementById('div').style.display=(docume ...