Heim > Backend-Entwicklung > PHP-Tutorial > ThinkPHP使用volist模板赋值问题

ThinkPHP使用volist模板赋值问题

WBOY
Freigeben: 2016-06-23 13:25:14
Original
1347 Leute haben es durchsucht

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

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


但是我遇到了变量名好像不一样啊。
<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>
Nach dem Login kopieren

$this->assign('__MENU__', $this->getMenus());
Nach dem Login kopieren


这个多出来的.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)
Nach dem Login kopieren
php可以这样写不。。。?

php5.4+ 可以这样

assign(__MENU__,getMenus()['main'])
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage