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}