ThinkPHP使用volist模板赋值问题

WBOY
Lepaskan: 2016-06-23 13:25:14
asal
1338 orang telah melayarinya

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

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


但是我遇到了变量名好像不一样啊。
<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>
Salin selepas log masuk

$this->assign('__MENU__', $this->getMenus());
Salin selepas log masuk


这个多出来的.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)
Salin selepas log masuk
php可以这样写不。。。?

php5.4+ 可以这样

assign(__MENU__,getMenus()['main'])
Salin selepas log masuk

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

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan