標籤:2.0 穿透 port 沒有 nbsp fse thinkphp default 控制器
使用內建標籤的時候,一定要注意閉合-----單標籤自閉合,雙標籤對應閉合
標籤的學習在於記憶和應用
一. 判斷比較
1 //IF 語句的完整格式2 <if condition="$user eq ‘蠟筆小新‘">3 小新4 <elseif condition="$user eq ‘黑崎一護‘" />5 一護6 <else />7 錯誤8 </if>
1 //condition 條件裡可以使用 PHP 函數2 <if condition="mb_substr($user,0,3,‘UTF-8‘) eq ‘蠟筆小‘">3 //condition 條件裡使用點文法,智能判斷數組或對象4 <if condition="$data.user eq ‘蠟筆小新‘">5 //condition 條件裡使用冒號文法,直接使用對象6 <if condition="$data:user eq ‘蠟筆小新‘">7 //condition 條件裡使用系統變數8 <if condition="$Think.get.user eq ‘蠟筆小新‘">
switch語句
1 //name 的值和 IF 語句一樣,可以是變數、數組、對象、函數或系統變數2 <switch name="user">3 <case value="蠟筆小新">小新</case>4 <case value="黑崎一護">一護</case>5 <default />錯誤6 </switch>
預設情況下,case 會自動添加 break 語句防止穿透,如果你就是想要穿透,那麼可以去除 break。當然,絕大部分不需要設定 break。
1 //去除 break2 <case value="蠟筆小新" break="0">小新</case>
比較標籤,都能和else搭配
1 //eq標籤2 <eq name="user" value="1">相等<else/>不相等</eq>3 //其他的標籤和這個標題的用法基本相同不再贅述4 //compare統一方法5 <compare type="eq" name="user" value="1">相等<else/>不相等</compare>
範圍判斷標籤 in、notin、between、notbetween
判斷變數的標籤 present -- notpresent empty -- notempty defined -- notdefined
其實都可以和else搭配使用,也就說not*沒有什麼作用,至少實在效果上來說
1 <present name="Think.get.user">$_GET[‘user‘]已賦值</present> 2 //判斷變數是否為空白,空則輸出 3 <empty name="user">user 為空白值</empty> 4 //判斷變數是否為空白,不空則輸出 5 <notempty name="user">user不為空白值</notempty> 6 //判斷變數是否為空白,組合 7 <empty name="user"> 8 user為空白值 9 <else />10 user不為空白值11 </empty>12 //判斷變數是否為空白,系統變數13 <empty name="Think.get.user">$_GET[‘user‘]為空白值</empty>14 //判斷常量是否定義,定義了輸出15 <defined name="APP_PATH">APP_PATH 常量已定義</defined>16 //判斷常量是否定義,沒定義輸出17 <notdefined name="APP_PATH">APP_PATH 常量未定義</notdefined>18 //判斷常量是否定義,組合19 <defined name="APP_PATH">20 APP_PATH常量已定義21 <else />22 APP_PATH常量未定義23 </defined>
二.遍曆迴圈 Volist 標籤、Foreach 標籤和 For 標籤
Volist 標籤
基本:
<ul> <volist name="data" id="arr"> <li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li> </volist> </ul>
PS:這裡的 name="data"中的 data 是控制器給模版定義的資料變數,要對應;這裡
的 id="arr"中的 arr 是將要遍曆迴圈的數組名,可以自訂。
各種屬性:
1 //offset 從第幾條開始,起始值 0,length 共多少條 2 <volist name="data" id="arr" offset="5" length="10"> 3 <li>{$arr.id} -- {$arr.user} -- {$arr.mail}</li> 4 </volist> 5 //mod 求當前餘數,當前 index 除以 2 餘 1,輸出偶數 6 <volist name="data" id="vo" mod="2"> 7 <eq name="mod" value="1"> 8 <li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li> 9 </eq>10 </volist>11 //沒有資料的情況下使用 empty 填充12 <volist name="data" id="vo" empty="沒有任何資料">13 <li>{$vo.id} -- {$vo.user} -- {$vo.mail}</li>14 </volist>15 //empty 屬性不支援 HTML 直接輸入,但可以通過變數輸出16 $this->assign(‘empty‘, ‘<span style="color:red">沒有任何資料</span>‘);17 <volist name="data" id="vo" empty="$empty">18 //通過 key 輸出迴圈遍曆的變數19 <volist name="data" id="vo" key="k">20 <li>{$k} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>21 </volist>22 //沒有指定 k,也可以用 i 變數輸出23 <li>{$i} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>24 //key 變數,可以直接輸出索引值,從 0 開始25 <li>{$key} -- {$vo.id} -- {$vo.user} -- {$vo.mail}</li>
foreach標籤
Foreach 標籤和 Volist 標籤類似,只不過 Foreach 標籤更加簡單,沒有額外屬性。
//只支援 key 屬性,但{$key}變數支援<ul><foreach name="data" item="vo"><ul>{$vo.id} -- {$vo.user}</ul></foreach></ul>
for標籤就更簡單了
1 //從 1 到 99 迴圈2 <for start="1" end="100">3 {$i}<br />4 </for>5 //完整形式6 <for start="1" end="100" comparison="lt" step="2" name="k">7 {$i}<br />8 </for>
除了start和end必須值,還有三個可選值。comparison是大於還是小於,預設值為lt
(<) ;name是迴圈變數名,預設值為i;step是步進值,預設為1。
三.其他標籤
1 //在模版中定義變數, value 值可以為變數 ($user) 或系統變數 ($Think.get.user) 2 <assign name="var" value="123" /> 3 {$var} 4 //在模版中定義常量, value 值可以為變數 ($user) 或系統變數 ($Think.get.user) 5 <define name="MY_NAME" value="Lee" /> 6 {$Think.const.MY_NAME} 7 import 匯入標籤可以智能的匯入 js 和 css 檔案 8 //常規引入方法 9 <script type="text/javascript" src="__PUBLIC__/js/index.js"></script>10 <link rel="stylesheet" type="text/css"11 href="__PUBLIC__/css/index.css" />12 //使用 import 匯入,js 和 css 是目錄13 <import type="js" file="js.index" />14 <import type="css" file="css.index" />15 //使用 import 匯入,basepath 修改預設路徑16 <import type="js" file="js.index" basepath="./Common" />17 load 載入標籤可以智能的載入 js 和 css 檔案18 //使用 load 載入19 <load href="__PUBLIC__/js/index.js" />20 <load href="__PUBLIC__/css/index.css" />21 系統還提供了專用 js 和 css 標籤,專門用於載入22 //使用專用標籤23 <js href="__PUBLIC__/js/index.js" />24 <css href="__PUBLIC__/css/index.css" />
1 //使用 php 標籤 2 <php> 3 $a = 1; 4 $b = 2; 5 echo $a + $b; 6 </php> 7 //使用 php 文法 8 <?php 9 $a = 1;10 $b = 2;11 echo $a + $b;12 ?>13 如果想原樣輸出標籤極其內容,可以使用 literal 標籤14 //原樣輸出15 <literal>16 <php>echo 123;</php>17 </literal>
掌握Thinkphp3.2.0----內建標籤