首頁  >  文章  >  後端開發  >  ThinkPHP使用volist模板赋值问题

ThinkPHP使用volist模板赋值问题

WBOY
WBOY原創
2016-06-23 13:25:141341瀏覽

今天看代码遇到个问题,给模板赋值是用

assign('变量名','变量值')
完成的吧,模板那边
<volist name="变量名" id="循环量">xxx        </volist>


但是我遇到了变量名好像不一样啊。
<ul class="main-nav">        <volist name="__MENU__.main" id="menu">        <li class="{$menu.class|default=''}"><a href="{$menu.url|U}">{$menu.title}</a></li>        </volist>    </ul>

$this->assign('__MENU__', $this->getMenus());


这个多出来的.main是个啥?新人求解答


回复讨论(解决方案)

相当于__MENU__['main'],它应该是个数组,就是你用$this->getMenus()获取到的

相当于__MENU__['main'],它应该是个数组,就是你用$this->getMenus()获取到的


对啊,是数组,那不是应该直接把数组里的挨个取出来吗?__MENU__是表示整个数组啊。

我试着这么理解您看对不对哈。
getMenus()返回的数组里面,只把键为[main]的一组进行循环赋值。

__MENU__是一个数组,__MENU__.main也就相当于__MENU__['main']
再说的明白一点,假设数组$a=array('main'=>array(1,2,3)),$a.main也就是$a['main'],也就是array(1,2,3)。

__MENU__是一个数组,__MENU__.main也就相当于__MENU__['main']
再说的明白一点,假设数组$a=array('main'=>array(1,2,3)),$a.main也就是$a['main'],也就是array(1,2,3)。



0~懂了,
那为什么不写成
assign(__MENU__,getMenus().main)
php可以这样写不。。。?

php5.4+ 可以这样

assign(__MENU__,getMenus()['main'])

若小php5.4版本
就这样
$tmp=getMenus();assign(__MENU__,$tmp['main'])

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn