ThinkPHP 模板引擎使用詳解

不言
發布: 2023-03-25 18:36:01
原創
1266 人瀏覽過

這篇文章主要介紹了關於ThinkPHP 模板引擎使用詳解,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

thinkphp系統支援原生的PHP模板,而且本身內建了一個基於XML的高效能的編譯型模板引擎,系統預設使用的模板引擎是內建模板引擎,關於這個模板引擎的標籤詳細使用可以參考模版引擎部分。

ThinkPHP 內建的模板引擎來定義模板文件,以及使用載入文件、模板佈局和模板繼承等高級功能。

每個模板文件在執行過程中都會產生一個編譯後的快取文件,其實就是一個可以運行的 PHP 文件。

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 便完成了對頁面的解析工作,其中涉及到 模板實例化、定位、賦值、渲染及標籤的使用。

視圖實例化

暫無

模板賦值

顯然在模板中直接使用$name 是找不到該變數的。必須使用 assign 方法對模板賦值。在執行渲染輸出函數前, assign 方法使 函數內部變數與範本變數建立起映射關係。

$this->assign(&#39;name&#39;,$name);
$this->assign(&#39;allName&#39;,$allName);
登入後複製

透過賦值之後,便可以在範本檔案中使用 {$nameA} 來輸出該變數了。

模板渲染

當資料已經準備好渲染到頁面上,還需要指定html 檔案作為渲染模板,為目前函數執行fetch 方法時候傳入example 參數。 

return $this->fetch(&#39;example&#39;);
登入後複製

範本標籤

在範本檔案中使用內建標籤可以幫助我們在範本中循環、判斷變數。它以一對花括號 {tag} {/tag} 作為開標籤和閉標籤。 { 與 } 之間必須緊跟著標籤屬性或值,存在 空格 和 換行 都不能在渲染時被解析。

volist 標籤就是內建標籤中的其中一個,通常用來循環某個陣列變數。

{volist name="allName" id="vo"}
 
  <p data-sub="{$key}" data-index="{$i}">{$vo}</p>
 
{/volist}
登入後複製

allName 是透過模板賦值的變數 ,現在可以在模板上直接使用了,顯然它是一個數組, volist 標籤對它做了循環操作。

volist 標籤常用的一些屬性:

##idkey陣列名稱目前元素valueallNamevo
propname
隱藏在volist 中的有幾個內部變數{$key} {$i} ,分別代表了陣列下標和循環次數。

內建標籤

與volist 一樣好用的內建標籤還有很多:

<notempty name=""></notempty> //判断数据是否不为空 不为空则执行
登入後複製
以上就是本篇文章的全部內容了,更多相關內容請關注PHP中文網。

相關建議:

thinkPHP範本中函數的使用方法範例

thinkPHP範本算術運算相關函數用法分析



##

以上是ThinkPHP 模板引擎使用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板