PHP Smarty 模板 变量访问 韩顺平 讲解
admin
2023-06-22 00:21:46
0次

定界符重新定义 预防在模板中有js css 代码时 smarty模板引擎解析出现错误!

注意点:

tpl页面模板中参数和值 在 php页面中对应关系。

例如

PHP页面代码

class Dog{
    var $arrT;
        function __construct($arr){
        $this->arrT=$arr;
    }
}
//一维索引数组
$arrA=array('beijing','shanghai','tianjin');
//实例化对象
$dog=new Dog($arrA);
$dog->master=$master;
$smarty->assign("dog",$dog);
$smarty->display("hello.tpl");

TPL页面代码
<{$dog->arrT.city1}>

在PHP页面中Dog类中的成员变量arrT 对应 TPL页面arrT

Dog类中构造方法形式参数$arr

        function __construct($arr){
        $this->arrT=$arr;
    }

定义要传入Dog类参数中的实参$arrA         $arrA=array('beijing','shanghai','tianjin');

在实例化对象时传入实参$arrA                   $dog=new Dog($arrA);


//创建smarty对象
require_once './libs/Smarty.class.php';
$smarty=new Smarty();
$smarty->left_delimiter="<{";
$smarty->right_delimiter="}>";

布尔型boolean

php页面

$smarty->assign("yang_boolean",true);

tpl页面

<{$yang_string}>

浏览器

1

整型integer

php页面

$smarty->assign("yang_int",567);

tpl页面

<{$yang_int}>

浏览器

567

浮点型float

php页面

$smarty->assign("yang_float",56.7);

tpl页面

<{$yang_float}>

浏览器

56.7

字符串string

php页面

$smarty->assign("yang_string","i come from China");

tpl页面

<{$yang_string}>

浏览器

i come from China

数组array  一维索引数组

php页面

$arr=array('beijing','shanghai','tianjin');
$smarty->assign("arr1",$arr);

tpl页面

<{$arr1[0]}>||<{$arr1[1]}>||<{$arr1[2]}>

浏览器

beijing||shanghai||tianjin

数组array  一维索引数组

php页面

$arr2=array(
    'city1'=>'beijing',  'city2'=>'上海',  'city3'=>'天津'
);
$smarty->assign("arr2",$arr2);

tpl页面

<{$arr2.city1}>||<{$arr2.city2}>||<{$arr2.city3}>

浏览器

beijing||上海||天津||

数组array  二维数组 (第一层为索引数组,第二层为索引数组)

php页面

$arr3=array(
    array("北京","上海","天津"),
    array("宋江","李逵","卢俊义")
);
$smarty->assign("arr3",$arr3);

tpl页面

<{$arr3[0][0]}>||<{$arr3[0][1]}>||<{$arr3[0][2]}>||<{$arr3[1][0]}>||<{$arr3[1][1]}>||<{$arr3[1][2]}>

浏览器

北京||上海||天津||宋江||李逵||卢俊义

数组array  二维数组 (第一层为索引数组,第二层为关联数组)

php页面

//关联二维数组
$arr4=array(
    array(
     "id"=>"a001",
     "name"=>"yang",
     "age"=>"33"        
    ),
    array(
        "id"=>"a002",
        "name"=>"wang",
        "age"=>"23"
    )
);
$smarty->assign("arr4",$arr4);

tpl页面

<{$arr4[0].id}>||<{$arr4[0].name}>||<{$arr4[0].age}>||<{$arr4[1].id}>||<{$arr4[1].name}>||<{$arr4[1].age}>

浏览器

a001||yang||33||a002||wang||23

数组array  二维数组 (第一层为关联数组,第二层为关联数组)

php页面

$arr5=array(
    "emp1"=>array(
        "id"=>"a001",
        "name"=>"yang",
        "age"=>"33"
    ),
    "emp2"=>array(
        "id"=>"a002",
        "name"=>"wang",
        "age"=>"23"
    )
);
$smarty->assign("arr5",$arr5);

tpl页面

<{$arr5.emp1.id}>||<{$arr5.emp1.name}>||<{$arr5.emp1.age}>||<{$arr5.emp2.id}>||<{$arr5.emp2.name}>||<{$arr5.emp2.age}>

浏览器

a001||yang||33||a002||wang||23

数组array  二维数组 (第一层为关联数组,第二层为索引数组)

php页面

$arr6=array(
    "emp1"=>array(
       "a001","yang", "33"
    ),
    "emp2"=>array(
      "a002","wang", "23"
    )
);
$smarty->assign("arr6",$arr6);

tpl页面

<{$arr6.emp1[0]}>||<{$arr6.emp1[1]}>||<{$arr6.emp1[2]}>||<{$arr6.emp2[0]}>||<{$arr6.emp2[1]}>||<{$arr6.emp2[2]}>

浏览器

a001||yang||33||a002||wang||23

对象object 

php页面

class Dog{
    var $name;//var是公开变量
    var $age;
    var $color;
    var $arrT;
    var $arr2;
    var $master;//小狗主人
    function __construct($name,$age,$color,$arr,$arr2){
        $this->name=$name;
        $this->age=$age;
        $this->color=$color;
        $this->arrT=$arr;
        $this->arr2=$arr2;
    }
}
//一维索引数组
$arrA=array('beijing','shanghai','tianjin');
//一维关联数组
$arrB=array(
    'city1'=>'beijing',  'city2'=>'上海',  'city3'=>'天津'
);

$arrC=array(
    array(
        "id"=>"a001",
        "name"=>"yang",
        "age"=>"33"
    ),
    array(
        "id"=>"a002",
        "name"=>"wang",
        "age"=>"23"
    )
);
//对象的分配
class Master{
    var $name;
    var $address;
}
$master=new Master();
$master->name="津沙港湾";
$master->address="厦门";
//实例化对象
$dog=new Dog("小明",5,"红色",$arrA,$arrC);
$dog->master=$master;
$smarty->assign("dog",$dog);
$smarty->display("hello.tpl");

tpl页面(对象成员,对象中一维索引数组,对象中二维数组,对象中对象的属性)

<{$dog->name}>||<{$dog->age}>||<{$dog->color}>
<{$dog->arrT[1]}>
<{$dog->arr2[0].name}>
<{$dog->master->name}>

浏览器

小明||5||红色
shanghai
yang
津沙港湾

php页面 (对象中参数传入是一维关联数组$arrB)

$arrB=array(
    'city1'=>'beijing',  'city2'=>'上海',  'city3'=>'天津'
);
$dog=new Dog("小明",5,"红色",$arrB,$arrC);

tpl页面(对象中一维关联数组)

<{$dog->arrT.city1}>

浏览器

beijing



相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...