smarty模板引擎从php中获取数据的方法

这篇文章主要介绍了smarty模板引擎从php中获取数据的方法,涉及smarty变量与php代码的混编技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了smarty模板引擎从php中获取数据的方法。分享给大家供大家参考。具体如下:

smarty可以分配($smarty->assign)的变量类型:所有php支持的数据类型——基本数据类型、复合数据类型、特殊数据类型(具体见smarty相关手册)。

操作/显示文件:index.php

  1. <?php
  2. //创建smarty对象
  3. require_once("./libs/Smarty.class.php");
  4. $smarty = new Smarty();
  5. $smarty->assign("aa","hello word");//分配字符串
  6. $smarty->assign("bb",123);//分配整型
  7. $smarty->assign("cc",90.8);//分配float型,浮点型
  8. $smarty->assign("dd",true);//分配字符串
  9. //分配数组,数组一般从数据库取出,这里直接给数组
  10. $arr1 = array("北京","上海","广州");//索引数组
  11. $smarty->assign("arr1",$arr1);//分配索引数组
  12. $arr2 = array("city1"=>"北京","city2"=>"上海","city3"=>"广州");//关联数组
  13. $smarty->assign("arr2",$arr2);//分配关联数组
  14. $arr3 = array(array("北京","上海","广州"),array("关羽","张飞","美女"));
  15. $smarty->assign("arr3",$arr3);
  16. $arr4 = array("aa"=>array("北京","上海","广州"),"bb"=>array("关羽","张飞","美女"));
  17. $smarty->assign("arr4",$arr4);
  18. //对象类型
  19. class Master{
  20. public $name;
  21. public $address;
  22. }
  23. $master = new Master();
  24. $master->name="百度";
  25. $master->address = "中关村";
  26. class Dog{
  27. public $name;
  28. public $age;
  29. public $color;
  30. public $arr;
  31. public $master;
  32. function __construct($name,$age,$color,$arr){
  33. $this->name = $name;
  34. $this->age = $age;
  35. $this->color = $color;
  36. $this->arr = $arr;
  37. }
  38. }
  39. $dog = new Dog("小狗",4,"金黄色",$arr2);
  40. $dog->master = $master;
  41. $smarty->assign("dog",$dog);
  42. $smarty->display("index.tpl");
  43. ?>

模板文件:index.tpl 代码如下:

  1. <html>
  2. <h2>smarty变量操作</h2>
  3. <p >取字符串:{$aa}</p>
  4. <p >取整数:{$bb}</p>
  5. <p >取浮点型:{$cc}</p>
  6. <p >取布尔值:{$dd}</p>
  7. <p >取数组(索引数组):{$arr1[0]}--{$arr1[1]}--{$arr1[2]}</p>
  8. <p >取数组(关联数组):{$arr2.city1}--{$arr2.city2}--{$arr2.city3}</p>
  9. <p >取二组数组(索引,取单个):{$arr3[0][0]}</p>
  10. <p >取二组数组(索引,遍历全部):</p>
  11. <p >取二维数组(关联):{$arr4.aa[2]}</p>
  12. <p >取二维数组(关联、遍历):</p>
  13. <p >取对象(普通属性):{$dog->name}</p>
  14. <p >取对象(数组属性):{$dog->arr.city1}</p>
  15. <p >取对象(对象属性):{$dog->master->name}</p>
  16. </html>