Smarty s01

时间:2023-03-10 05:37:22
Smarty s01

复习面向过程中,如何输出显示变量的内容

01.php

第一个版本,使用三个文件来输出html

1.访问文件

2.类MyTpl.class.php

3.一个html模板文件

课堂练习第一个版本

第二个版本,在MyTpl类中,添加了一个assign()方法,用于从入口文件分配变量到对象上,

在模板html文件中,可以通过$this->data来访问分配过来的数据

第三个版本

我们让assign()过来的变量,直在模板中使用

模板中不能直接使用入口文件中的变量 ,需要assign()后才能在模板中使用

第四个版本

让display()接收一个模板文件,实现换皮肤功能

MyTpl类,可以通用了,例如在index.php  order.php中,都可以使用

第五个版本

在输出内容的方法中,不能出现局部变量(或形参),否则模板中就可以直接使用了

第六个版本

把模板中的php代码消灭掉

第七个版本

对性能的优化

如果模板已经编译好,并模板未更新,就不再编译

第八个版本

让定界符可以自定义 增强用户体验

----------------------------------------------------------------------------

Smarty 3

1.复制其中的libs目录到我们的项目中

2.建一个模板文件 demo.tpl

3.建一个php入口文件demo.php

定界符

{}

如果定界符后有一个空格,则不解析  ***

原样输出

{literal}{/literal}

注释

{*Smarty的注释*}

不会输出到浏览器

变量

{$name}

{$arr[0]}          {$arr['name']}           数组

{$arr.0}           {$arr.name}                        数组,与上一行一样

{$arr.1+1}                                            $arr[1]+1

{$arr.{1+1}}                                         $arr[2]

{$obj->name}                                        属性

{$obj->say()}                                          方法的调用

{time()}   {myfum()}                          调函数           ***

单双引号:

{$str="我是{$username}"}

{$str}

{$str='我是{$username}'}

{$str}

{$str="我是$username"}

{$str}