Smarty之assign赋数组append赋值

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>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值