ThinkPHP使用volist模板赋值问题

WBOY
Release: 2016-06-23 13:25:14
Original
1339 people have browsed it

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

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


但是我遇到了变量名好像不一样啊。
<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>
Copy after login

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


这个多出来的.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)
Copy after login
php可以这样写不。。。?

php5.4+ 可以这样

assign(__MENU__,getMenus()['main'])
Copy after login

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

source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template