Home > Backend Development > PHP Tutorial > Examples of how to use variables in PHP template engine Smarty, template smarty_PHP tutorial

Examples of how to use variables in PHP template engine Smarty, template smarty_PHP tutorial

WBOY
Release: 2016-07-12 08:54:29
Original
788 people have browsed it

Examples of how to use variables in PHP template engine Smarty, template smarty

This article describes how to use variables in PHP template engine Smarty. Share it with everyone for your reference, the details are as follows:

1. Overview:

Smarty is one of many template engines for PHP. It is a class library written in PHP.
Advantages of Smarty:
1. Optimize website access speed;
2. Separation of web front-end design and program;

2. Smarty installation

1. You need to download the latest Smarty version from Smarty’s official website http://www.smarty.net/download.php. For example, the downloaded version is: Smarty-2.6.18.tar.tar;

2. Unzip the Smarty-2.6.18.tar.tar compressed package and you will find many files and folders. Except for the libs folder, it is useless to delete all others;

3. When calling the Smarty template engine, you should first use PHP's require statement to load the file libs/Smarty.class.php.

3. Default settings of Smarty class library

require After entering the Smarty.class.php file, if you need to set the members in the Smarty class library, there are two methods: one is to modify it directly in the Smarty.class.php file; the other is to initialize the class The library is respecified later, generally using the latter. The following is a description of the member properties in the Smarty class library:

1. $template_dir: Set the directory where template files in the website are stored. The default directory is templates
2. $compile_dir: Set the directory where compiled files in the website are stored. The default directory is templates_c
3. $config_dir: Defines the directory used to store special configuration files for templates. The default is configs
4. $left_delimiter: used for the left terminator variable in the template, the default is '{'
5. $right_delimiter: used for the right terminator variable in the template, the default is '}'

4. Use of variables:

All access in Smarty is based on variables. The following is an example to illustrate.

Example idea: The main file introduces the template initialization configuration file (init.inc.php) and a class, and assigns values ​​to the variables in the template.

First, set the init.inc.php file as the initialization configuration file of the Smarty template
init.inc.php

<&#63;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 = '}>';    //重新设置左定界符为 '}>'
&#63;>

Copy after login

Main file index.php

<&#63;php
  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');
&#63;>

Copy after login

The template file index.tpl of the main file index.php (stored in the /tpl/ directory)

<!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>

Copy after login

Persion.class.php

<&#63;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.'岁了。';
   }
 }
&#63;>

Copy after login

Execution result:

变量的访问:This is body content!
索引数组的访问:abc def ghi
索引二维数组的访问: abc def ghi jkl mno pqr
关联数组的访问:111 222 333
关联二维数组的访问:111 222 333 444
关联和索引混合数组的访问:111 222 333 444
对象中成员变量的访问:小易 10
对象中方法的访问:您好!我叫小易,今年10岁了。
变量的运算:30
变量的混合运算:94

Copy after login

Readers who are interested in more PHP-related content can check out the special topics of this site: "Basic Tutorial for Getting Started with Smarty Templates", "Summary of PHP Template Technology", "Summary of PHP Database Operation Skills Based on PDO", "PHP Operations and Operators" Usage summary", "PHP network programming skills summary", "PHP basic syntax introductory tutorial", "php object-oriented programming introductory tutorial", "php string (string) usage summary", "php mysql database operation introductory tutorial" and "Summary of Common Database Operation Skills in PHP"

I hope this article will be helpful to everyone’s PHP program design based on smarty templates.

Articles you may be interested in:

  • Detailed explanation of the built-in functions of PHP template engine Smarty
  • Detailed explanation of the usage of the built-in variable mediator of PHP template engine Smarty
  • PHP Template engine Smarty custom variable mediator usage
  • Usage analysis of reserved variables in PHP template engine Smarty
  • PHP template engine Smarty built-in function foreach, foreachelse usage analysis
  • PHP Example of how to use the configuration file of the template engine Smarty in template variables
  • How the smarty template engine obtains data from php
  • ThinkPHP How to use the smarty template engine
  • In Detailed explanation of the random number generation method and math function of PHP template engine smarty
  • Summary of cache usage of PHP template engine Smarty
  • 6 tips for PHP smarty template engine
  • [PHP ] An in-depth introduction to the template engine Smarty
  • Detailed explanation of the usage of the built-in functions section and sectionelse of the PHP template engine Smarty

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1119979.htmlTechArticleExamples of how to use variables in PHP template engine Smarty, template smarty This article describes the use of variables in PHP template engine Smarty How to use. Share it with everyone for your reference, the details are as follows:...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template