模板文件 show.tpl
<h1>Smarty 用例</h1>
<{$str}> <-- 字符串 -->
<{$integer}> <-- 整數 -->
<{$float}> <-- 浮點數 -->
<{$bool}> <-- 布爾值 -->
<-- 索引陣列 -->
<{$arr[0]}> <{$arr[1]}> <{$arr[2]}>
<-- 關聯陣列 -->
<{$arr2.city1}&> <{$arr2.city2}&> <{$arr2.city3}&>
<-- 二維索引陣列 -->
<{$arr3[0][0]}> <{$arr3[0][1]}> <{$arr3[0][2]}>
<{$arr3[1][0]}> <{$arr3[1][1]}> <{$arr3[1][2]}>
<-- 二維關聯陣列 -->
<{$arr4[0].id}&> <{$arr4[0].username}&> <{$arr4[0].pwd}&>
<{$arr4[1].id}&> <{$arr4[1].username}&> <{$arr4[1].pwd}&>
<-- 巢狀關聯陣列 -->
<{$arr5.emp1.id}&> <{$arr5.emp1.username}&> <{$arr5.emp1.pwd}&>
<-- 對象屬性 -->
<{$dog->name}&> <{$dog->age}&> <{$dog->color}&>
<{$dog->arr[0]}> <{$dog->arr[1]}> <{$dog->arr[2]}>
PHP 賦值腳本
$smarty = new Smarty();
$smarty->left_delimiter = "<{";
$smarty->right_delimiter = "}>";
$smarty->assign('str', 'hello');
$smarty->assign('integer', 12);
$smarty->assign('float', 100.0);
$smarty->assign('bool', true);
$smarty->assign('arr', ["上海","北京","天津"]);
$smarty->assign('arr2', ['city1'=>'上海','city2'=>'北京','city3'=>'天津']);
$smarty->assign('arr3', [["上海","北京","天津"],["小倩","老妖","采臣"]]);
$smarty->assign('arr4', [['id'=>1,'username'=>'wang','pwd'=>'123'],['id'=>3,'username'=>'xu','pwd'=>'456']]);
$smarty->assign('arr5', ['emp1'=>['id'=>1,'username'=>'wang','pwd'=>'123'],'emp2'=>['id'=>3,'username'=>'xu','pwd'=>'456']]);
class Dog {
public $name,$age,$color,$arr;
function __construct($n,$a,$c,$arr){ $this->name=$n;$this->age=$a;$this->color=$c;$this->arr=$arr; }
}
$smarty->assign('dog', new Dog("小明",11,"RED",[1,2,3]));
$smarty->display("show.tpl");
關鍵語法對照
| PHP 類型 | 模板語法 |
| 索引陣列 | {$arr[0]} |
| 關聯陣列 | {$arr.key} 或 {$arr['key']} |
| 對象屬性 | {$obj->prop} |
| 對象方法 | {$obj->method()} |