Home  >  Article  >  Backend Development  >  ThinkPHP使用volist模板赋值问题

ThinkPHP使用volist模板赋值问题

WBOY
WBOYOriginal
2016-06-23 13:25:141340browse

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

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'])

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn