从此
jimport( 'joomla.application.module.helper' );
$modules = JModuleHelper::getModules( 'top' );
echo '<pre>';
print_r( $modules );
echo '</pre>';
输出此结构的
Array
(
[0] => stdClass Object
(
[id] => 25
[title] => Newsflash
[module] => mod_newsflash
[position] => top
[content] =>
[showtitle] => 1
[control] =>
[params] => catid=3
style=random
items=
moduleclass_sfx=
[user] => 0
[name] => newsflash
[style] =>
)
)
我目前调用此函数来输出它
<?=$modules[0]->content ?>
我想用一行打电话但它不起作用
<?=JModuleHelper::getModules( 'top' )[0]->content ?>
我可以在getmodule的单数版本上完成它并且它可以正常工作,因为它没有包含在数组中。
<?=JModuleHelper::getModule( 'top' )->content ?>
有人知道如何使用一行代码深入研究这个数据结构吗?
答案 0 :(得分:1)
PHP reset()
重置数组的内部指针并返回第一个元素。
因此,
$modules = reset(JModuleHelper::getModules( 'top' ))->content;
将获得第一个元素的内容。
如果JModuleHelper
返回一个空数组,将失败,原因很明显。不幸的是,它不会安静地失败,因为reset()
在提供空数组时返回false
。