Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Verwendung und Beispiele von Variablen in der PHP-Template-Engine Smarty

Detaillierte Erläuterung der Verwendung und Beispiele von Variablen in der PHP-Template-Engine Smarty

墨辰丷
墨辰丷Original
2018-06-04 09:47:371383Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung von Variablen in der PHP-Vorlagen-Engine Smarty vor. Er beschreibt detailliert die Prinzipien der Smarty-Vorlagen, das Herunterladen, die Konfigurationsmethoden und die Techniken zur Verwendung von Variablen.

1. Übersicht:

Smarty ist eine der vielen Template-Engines in PHP. Es handelt sich um eine auf PHP basierende Klassenbibliothek.
Vorteile von Smarty:
Optimierung der Website-Zugriffsgeschwindigkeit

2 🎜> 1. Sie müssen die neueste Smarty-Version von der offiziellen Website von Smarty herunterladen: http://www.smarty.net/download.php. Die heruntergeladene Version ist beispielsweise: Smarty-2.6.18.tar.tar ;

2. Entpacken Sie das komprimierte Paket Smarty-2.6.18. Sie werden viele Dateien und Ordner finden, es ist sinnlos, alle anderen zu löschen >3. Beim Aufruf der Smarty-Template-Engine sollten Sie zunächst die require-Anweisung von PHP verwenden, um die Datei libs/Smarty.class.php zu laden.

3. Standardeinstellungen der Smarty-Klassenbibliothek

erforderlich Wenn Sie nach Eingabe der Datei Smarty.class.php die Mitglieder in der Smarty-Klassenbibliothek festlegen müssen, Es gibt zwei Methoden: Eine besteht darin, sie direkt in der Datei Smarty.class.php zu ändern. Die andere besteht darin, sie nach der Initialisierung der Klassenbibliothek erneut anzugeben. Letztere wird im Allgemeinen verwendet. Im Folgenden finden Sie eine Erläuterung der Mitgliedsattribute in der Smarty-Klassenbibliothek:

1. Legen Sie das Verzeichnis fest, in dem Vorlagendateien auf der Website gespeichert werden.2 : Legen Sie die Zusammenstellung auf der Website fest. Das Verzeichnis, in dem die Dateien gespeichert werden, ist templates_c

3 left_delimiter: Wird für die linke Abschlussvariable in der Vorlage verwendet, der Standardwert ist '{'

5. $right_delimiter: Wird für die rechte Abschlussvariable in der Vorlage verwendet, der Standardwert ist '}'


4. Verwendung von Variablen:


Alle Zugriffe in Smarty basieren auf Variablen. Das Folgende ist ein Beispiel zur Veranschaulichung.

Beispielidee: Die Hauptdatei führt die Vorlageninitialisierungskonfigurationsdatei (init.inc.php) und eine Klasse ein und weist den anzuzeigenden Variablen in der Vorlage Werte zu. Legen Sie zunächst die Datei init.inc.php als Initialisierungskonfigurationsdatei der Smarty-Vorlage fest

init.inc.php

<?php
  define(&#39;ROOT_PATH&#39;, dirname(__FILE__)); //定义网站根目录
  require ROOT_PATH.&#39;/libs/Smarty.class.php&#39;; //载入 Smarty 文件
  $_tpl = new Smarty();      //实例化一个对象
  $_tpl->template_dir = ROOT_PATH.&#39;/tpl/&#39;; //重新设置模板目录为根目录下的 tpl 目录
  $_tpl->compile_dir = ROOT_PATH.&#39;./com/&#39;; //重新设置编译目录为根目录下的 com 目录
  $_tpl->left_delimiter = &#39;<{&#39;;   //重新设置左定界符为 &#39;<{&#39;
  $_tpl->right_delimiter = &#39;}>&#39;;    //重新设置左定界符为 &#39;}>&#39;
?>


Hauptdatei index.php

<?php
  require &#39;init.inc.php&#39;; //引入模板初始化文件
  require &#39;Persion.class.php&#39;; //载入对象文件
  global $_tpl;
  $title = &#39;This is a title!&#39;;
  $content = &#39;This is body content!&#39;;
  /*
  * 一、从 PHP 中分配给模板变量;
  * 动态的数据(PHP从数据库或文件,以及算法生成的变量)
  * 任何类型的数据都可以从PHP分配过来,主要包括如下
  * 标量:string、int、double、boolean
  * 复合:array、object
  *   NULL
  * 索引数组是直接通过索引来访问的
  * 关联数组,不是使用[关联下标]而是使用 . 下标的方式
  * 对象是直接通过->来访问的
  * */
  $_tpl->assign(&#39;title&#39;,$title);
  $_tpl->assign(&#39;content&#39;,$content); //变量的赋值
  $_tpl->assign(&#39;arr1&#39;,array(&#39;abc&#39;,&#39;def&#39;,&#39;ghi&#39;));  //索引数组的赋值
  $_tpl->assign(&#39;arr2&#39;,array(array(&#39;abc&#39;,&#39;def&#39;,&#39;ghi&#39;),array(&#39;jkl&#39;,&#39;mno&#39;,&#39;pqr&#39;))); //索引二维数组的赋值
  $_tpl->assign(&#39;arr3&#39;,array(&#39;one&#39;=>&#39;111&#39;,&#39;two&#39;=>&#39;222&#39;,&#39;three&#39;=>&#39;333&#39;)); //关联数组的赋值
  $_tpl->assign(&#39;arr4&#39;,array(&#39;one&#39;=>array(&#39;one&#39;=>&#39;111&#39;,&#39;two&#39;=>&#39;222&#39;),&#39;two&#39;=>array(&#39;three&#39;=>&#39;333&#39;,&#39;four&#39;=>&#39;444&#39;))); //关联二维数组的赋值
  $_tpl->assign(&#39;arr5&#39;,array(&#39;one&#39;=>array(&#39;111&#39;,&#39;222&#39;),array(&#39;three&#39;=>&#39;333&#39;,&#39;444&#39;))); //关联和索引混合数组的赋值
  $_tpl->assign(&#39;object&#39;,new Persion(&#39;小易&#39;, 10)); //对象赋值
  //Smarty 中数值也可以进行运算(+-*/^……)
  $_tpl->assign(&#39;num1&#39;,10);
  $_tpl->assign(&#39;num2&#39;,20);
  $_tpl->display(&#39;index.tpl&#39;);
?>

Vorlagendatei index.tpl der Hauptdatei index.php (gespeichert im Verzeichnis /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

<?php
  class Persion {
   public $name; //为了访问方便,设定为public
   public $age;
   //定义一个构造方法
   public function __construct($name,$age) {
     $this->name = $name;
     $this->age = $age;
   }
   //定义一个 hello() 方法,输出名字和年龄
   public function hello() {
     return &#39;您好!我叫&#39;.$this->name.&#39;,今年&#39;.$this->age.&#39;岁了。&#39;;
   }
 }
?>

Ausführungsergebnis:

变量的访问: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

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Detaillierte Erläuterung mehrerer Methoden für PHP, um Benutzerzugriffs-IP-Adressen zu erhalten

Häufig verwendete Array-Operationen in PHP Detaillierte Erläuterung der Methode

php Die Funktion verwendet eine Methode mit variabler Anzahl von Parametern


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung und Beispiele von Variablen in der PHP-Template-Engine Smarty. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn