您的位置:首页 > 移动开发

Smarty之assign赋数组append赋值

2015-10-18 16:11 459 查看
assign赋数组过程

append赋多个值,成索引数组

<?php
/*assign 赋值数组
append 连续赋值*/
require('../../smarty3/libs/Smarty.class.php');
$smarty=new Smarty();
$smarty->template_dir='./temp';
$smarty->compile_dir='./comp';

$user=array('name'=>'sonia','age'=>'100');
$smarty->assign('user',$user);
/*赋值发生了什么
smarty/libs/sysplugins/smarty_interal_data.php
public function assign($tpl_var, $value = null, $nocache = false)
{
if (is_array($tpl_var)) {
foreach ($tpl_var as $_key => $_val) {
if ($_key != '') {
$this->tpl_vars[$_key] = new Smarty_Variable($_val, $nocache);
就看这一段,assign收到的是数组,其实就是$this->tpl_vars[$_key] =$_val===>foreach($arr as $k =>$v)... $this->tpl_vars[name] =sonia
相当于把name当成单个值assign给类内的数组;
*/

$city=array('a'=>array('b'=>array('c'=>'bk')));
/*多维数组*/
$smarty->assign('city',$city);

/*append连续往某一个标签赋很多值*/
$smarty->append('num','2015');
$smarty->append('num','2050');
/*public function append($tpl_var, $value = null, $merge = false, $nocache = false)
{...
$this->tpl_vars[$tpl_var]->value[] = $value;
===>>>num[]=2015 num[]=2050
*/
$smarty->display('temp3.html');

?>temp3.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>temp3</title>
</head>

<body>
<h1>{$user.name}</h1>
<h2>{$city.a.b.c}</h2>
<h3>{$num[0]}</h3>
<h3>{$num[1]}</h3>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php smarty append