ThinkPHP 模板引擎使用詳解
ThinkPHP 內(nèi)置的模板引擎來(lái)定義模板文件,以及使用加載文件、模板布局和模板繼承等高級(jí)功能。
每個(gè)模板文件在執(zhí)行過(guò)程中都會(huì)生成一個(gè)編譯后的緩存文件,其實(shí)就是一個(gè)可以運(yùn)行的 PHP 文件。
引用自 http://www.kancloud.cn/manual/thinkphp5/118122
PHP
/*index/controller/example.php*/
use think\Controller;
class test extends Index {
public function template (){
$name = 'Jerry';
$allName = [
0 => "Jerry",
1 => "Tom"
];
$this->assign('nameA',$name);
$this->assign('allName',$allName);
return $this->fetch('example');
}
}
HTML
/*index/view/example.html*/
<span>{$nameA}</span>
{volist name="allName" id="vo"}
<p data-sub="{$key}" data-index="{$i}">{$vo}</p>
{/volist}
Result
<br /><span>Jerry</span>
<p data-sub="0" data-index="1">Jerry</p>
<p data-sub="1" data-index="2">Tom</p>
這樣 ThinkPHP 便完成了對(duì)頁(yè)面的解析工作,其中涉及到 模板實(shí)例化、定位、賦值、渲染及標(biāo)簽的使用。
視圖實(shí)例化
暫無(wú)
模板賦值
顯然在在模板中直接使用 $name 是找不到該變量的。必須使用 assign 方法對(duì)模板賦值。在執(zhí)行渲染輸出函數(shù)前, assign 方法使 函數(shù)內(nèi)部變量與模板變量建立起映射關(guān)系。
$this->assign('name',$name);
$this->assign('allName',$allName);
通過(guò)賦值之后,便可以在模板文件中使用 {$nameA} 來(lái)輸出該變量了。
模板渲染
當(dāng)數(shù)據(jù)已經(jīng)準(zhǔn)備好渲染到頁(yè)面上,還需要指定 html 文件作為渲染模板,為當(dāng)前函數(shù)執(zhí)行 fetch 方法時(shí)候傳入 example 參數(shù)。
return $this->fetch('example');
模板標(biāo)簽
在模板文件中使用內(nèi)置標(biāo)簽可以幫助我們?cè)谀0逯醒h(huán)、判斷變量。它以一對(duì)花括號(hào) {tag} {/tag} 作為開(kāi)標(biāo)簽和閉標(biāo)簽。 { 與 } 之間必須緊跟標(biāo)簽屬性或值,存在 空格 和 換行 都不能在渲染時(shí)被解析。
volist 標(biāo)簽就是內(nèi)置標(biāo)簽中的其中一個(gè),通常用來(lái)循環(huán)某個(gè)數(shù)組變量。
{volist name="allName" id="vo"}
<p data-sub="{$key}" data-index="{$i}">{$vo}</p>
{/volist}
allName 是通過(guò)模板賦值的變量 ,現(xiàn)在可以在模板上直接使用了,顯然它是一個(gè)數(shù)組, volist 標(biāo)簽對(duì)它做了循環(huán)操作。
volist 標(biāo)簽常用的一些屬性:
| prop | name | id |
|---|---|---|
| key | 數(shù)組名 | 當(dāng)前元素 |
| value | allName | vo |
隱藏在 volist 中的有幾個(gè)內(nèi)部變量 {$key} {$i} ,分別代表了 數(shù)組下標(biāo) 和 循環(huán)次數(shù) 。
內(nèi)置標(biāo)簽
與 volist 一樣好用的內(nèi)置標(biāo)簽還有很多:
<notempty name=""></notempty> //判斷數(shù)據(jù)是否不為空 不為空則執(zhí)行
相關(guān)文章
PHP獲取欄目的所有子級(jí)和孫級(jí)欄目的ID號(hào)示例
這篇文章主要介紹了PHP獲取欄目的所有子級(jí)和孫級(jí)欄目的ID號(hào)的具體實(shí)現(xiàn),需要的朋友可以參考下2014-04-04
PHP實(shí)現(xiàn)的json類(lèi)實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)的json類(lèi),實(shí)例分析了php實(shí)現(xiàn)json類(lèi)的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
PHP中數(shù)字檢測(cè)is_numeric與ctype_digit的區(qū)別介紹
PHP中的兩個(gè)函數(shù)is_numeric和ctype_digit都是檢測(cè)字符串是否是數(shù)字,但也存在一點(diǎn)區(qū)別2012-10-10
php實(shí)現(xiàn)數(shù)組按指定KEY排序的方法
這篇文章主要介紹了php實(shí)現(xiàn)數(shù)組按指定KEY排序的方法,涉及php操作數(shù)組排序的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
php寫(xiě)入mysql中文亂碼的實(shí)例解決方法
在本文里小編給大家整理的是關(guān)于php寫(xiě)入mysql中文亂碼的解決方法和知識(shí)點(diǎn),有需要的朋友們參考下。2019-09-09

