【PHP高级】Smarty模板二

    xiaoxiao2021-12-14  20

     

    一、自定义变量

    如何实现一个商城系统,在商品列表页面默认每行显示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>

     

    转载请注明原文地址: https://ju.6miu.com/read-963297.html

    最新回复(0)