【PHP高級】Smarty模板二


 

一、自定義變量

如何實現一個商城系統,在商品列表頁面默認每行顯示4件商品信息,管理員希望通過後臺可以控制每行顯示的商品數量,那麼需要使用自定義變量。不是通過後臺PHP註冊,但是可以當作註冊變量的來用。

語法:

定義 <{assign var=”變量名” value=”值”}>

取值只有 {$變量名}

重新放賦值,需要註冊一個同名的變量<{assign var=”變量名” value=”值”}>

 

smarty註釋

<{* 註釋  *}>

 

數值類型的值進行數學運算重新賦值時不得加上單/雙引號

<{assign var="t2" value="1"}>

原來的值:<{$t2}>

<br />

1的結果:

<{*註釋:數值類型的值進行數學運算不能加單/雙引號*}>

<{assign var="t2" value=$t2+1}>

<{$t2}>

 

二、運算符

支持所有的PHP運算符!!另外

eq 判斷是否相等  ==

neqne 不相等  !=

lt 小於         <

lte 小於等於    <=

gt 大於         >

gte 大於等於    >=

is div by 被某數整除   %

is even 爲偶數         %2==0

is odd 爲奇數          %2!=0

 

三、流程控制

1、順序結構

2、選擇結構

語法:

<{if 條件表達式}>

XXX

<{elseif 條件表達式}>

xxxxx

<{else}>

XXXX

<{/if}>

3、循環結構

1)section

2)Foreach

 

四、案例:管理員在後臺控制每行商品顯示數量

後臺頁面:

<?php

//引入核心類庫文件

include_once('libs/Smarty.class.php');

$smarty=new Smarty();

//定義配置

//用戶訪問的是後臺頁面,所以所有的路徑都應該要以後臺頁面爲參照物!!

$smarty->setTemplateDir('templates');//定義模板路徑

$smarty->setCompileDir('template_c');//定義編譯路徑

$smarty->setConfigDir('config');//定義配置路徑

$smarty->setCacheDir('cache');//定義緩存路徑

$smarty->setLeftDelimiter('<{');//指定左定界符,避免和JS衝突

$smarty->setRightDelimiter('}>');

 

 

$temp=2;

$smarty->assign("temp",$temp);

//註冊一個索引數組

$arr=array('a','b','c','d','e','f');

$smarty->assign('arr',$arr);

//開啓調試 :    $smarty->debugging=true;

//自動整合前後臺頁面

$smarty->display('index2.tpl');

 

?>

 

前臺頁面:

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>無標題文檔</title>

</head>

 

<body>

<{assign var='t1' value='a'}>    <{*賦值*}>

<{$t1}><{*取值*}>

 

<{assign var='t2' value='1'}><{*賦值*}>

<br>原來的值:<{$t2}><{*取值*}>

 

 

<{assign var='t2' value=$t2+1}><{*賦值,注意數值類型的值進行數學運算不能加單/雙引號*}>

<br>1後的值:<{$t2}><{*取值*}>

<br>

 

使用選擇結構:

<{if $temp gt 0}><{*大於*}>

$temp>0

<{elseif $temp eq 0 }><{*等於*}>

$temp=0

<{elseif $temp lt 0 }><{*小於*}>

$temp<0

<{/if}>

<br>

 

<{assign var='pic' value=0}>

<{foreach from=$arr item=v }>

<{$v}>   

 

<{assign var='pic' value=$pic+1}>

<{if $pic%3 eq 0}>

<br/>

<{/if}>

<{foreachelse}>  

 <font color="red" style="font-weight:bold;">數組爲空</font>

 <{*smarty註釋,數組爲空時可以顯示對應內容*}>

<{/foreach}>

</body>

</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章