首页 > 编程 > PHP > 正文

PHP模板引擎Smarty中变量的使用方法示例

2020-03-22 17:16:31
字体:
来源:转载
供稿:网友
本文实例讲述了PHP模板引擎Smarty中变量的使用方法。分享给大家供大家参考,具体如下:一、概述:Smarty 是 PHP 众多模板引擎中的一个,它是根据 PHP 编写的一个类库。
Smarty 的优点:
1、优化网站访问速度;
2、网页前端设计和程序的分离;二、Smarty 的安装1、需要到 Smarty 的官方网站 http://www.smarty.net/download.php 下载最新的 Smarty 版本,比如下载的版本为:Smarty-2.6.18.tar.tar;2、解压 Smarty-2.6.18.tar.tar 压缩包,会发现都很多文件和文件夹,除了 libs 文件夹外,其他的全部删除,都没有用;3、当调用 Smarty 模板引擎时,应先使用 PHP 的 require 语句载入 libs/Smarty.html' target='_blank'>class.php 这个文件。三、Smarty 类库的默认设置require 进 Smarty.class.php 文件后,如果需要对 Smarty 类库中的成员进行设置,有两种方法:一种是直接在 Smarty.class.php 文件中修改;一种是在初始化类库之后进行重新指定,一般使用后者。下面对 Smarty 类库中的成员属性进行说明:1、$template_dir:设置网站中的模板文件存放的目录,默认目录是 templates
2、$compile_dir:设置网站中编译文件存放的目录,默认目录是 templates_c
3、$config_dir:定义用于存放模板特殊配置文件的目录,默认是 configs
4、$left_delimiter:用于模板中的左结束符变量,默认是 '{'
5、$right_delimiter:用于模板中的右结束符变量,默认是 '}'四、变量的使用:Smarty 中所有的访问都是基于变量的,下面通过一个实例来进行说明。实例思路:主文件通过引入模板初始化配置文件(init.inc.php)和一个类,并对模板中的变量进行赋值显示。首先,设置 init.inc.php 文件,作为 Smarty 模板的初始化配置文件
init.inc.php define('ROOT_PATH', dirname(__FILE__)); //定义网站根目录 require ROOT_PATH.'/libs/Smarty.class.php'; //载入 Smarty 文件 $_tpl = new Smarty(); //实例化一个对象 $_tpl- template_dir = ROOT_PATH.'/tpl/'; //重新设置模板目录为根目录下的 tpl 目录 $_tpl- compile_dir = ROOT_PATH.'./com/'; //重新设置编译目录为根目录下的 com 目录 $_tpl- left_delimiter = ' //重新设置左定界符为 ' {' $_tpl- right_delimiter = '} //重新设置左定界符为 '} '
require 'init.inc.php'; //引入模板初始化文件 require 'Persion.class.php'; //载入对象文件 global $_tpl; $title = 'This is a title!'; $content = 'This is body content!'; * 一、从 PHP 中分配给模板变量; * 动态的数据(PHP从数据库或文件,以及算法生成的变量) * 任何类型的数据都可以从PHP分配过来,主要包括如下 * 标量:string、int、double、boolean * 复合:array、object * NULL * 索引数组是直接通过索引来访问的 * 关联数组,不是使用[关联下标]而是使用 . 下标的方式 * 对象是直接通过- 来访问的 * */ $_tpl- assign('title',$title); $_tpl- assign('content',$content); //变量的赋值 $_tpl- assign('arr1',array('abc','def','ghi')); //索引数组的赋值 $_tpl- assign('arr2',array(array('abc','def','ghi'),array('jkl','mno','pqr'))); //索引二维数组的赋值 $_tpl- assign('arr3',array('one'= '111','two'= '222','three'= '333')); //关联数组的赋值 $_tpl- assign('arr4',array('one'= array('one'= '111','two'= '222'),'two'= array('three'= '333','four'= '444'))); //关联二维数组的赋值 $_tpl- assign('arr5',array('one'= array('111','222'),array('three'= '333','444'))); //关联和索引混合数组的赋值 $_tpl- assign('object',new Persion('小易', 10)); //对象赋值 //Smarty 中数值也可以进行运算(+-*/^……) $_tpl- assign('num1',10); $_tpl- assign('num2',20); $_tpl- display('index.tpl');
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=utf-8" / title {$title} /title /head body 变量的访问: {$content} br / 索引数组的访问: {$arr1[0]} {$arr1[1]} {$arr1[2]} br / 索引二维数组的访问: {$arr2[0][0]} {$arr2[0][1]} {$arr2[0][2]} {$arr2[1][0]} {$arr2[1][1]} {$arr2[1][2]} br / 关联数组的访问: {$arr3.one} {$arr3.two} {$arr3.three} br / 关联二维数组的访问: {$arr4.one.one} {$arr4.one.two} {$arr4.two.three} {$arr4.two.four} br / 关联和索引混合数组的访问: {$arr5.one[0]} {$arr5.one[1]} {$arr5[0].three} {$arr5[0][0]} br / 对象中成员变量的访问: {$object- name} {$object- age} br / 对象中方法的访问: {$object- hello()} br / 变量的运算: {$num1+$num2} br / 变量的混合运算: {$num1+$num2*$num2/$num1+44} br / /body /html Persion.class.php class Persion { public $name; //为了访问方便,设定为public public $age; //定义一个构造方法 public function __construct($name,$age) { $this- name = $name; $this- age = $age; //定义一个 hello() 方法,输出名字和年龄 public function hello() { return '您好!我叫'.$this- name.',今年'.$this- age.'岁了。';
更多关于PHP相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表