在下面的第一个foreach语句中,$ widgets变量之前出现的&符号导致旧版本的PHP窒息。问题是如果没有&符号,这个函数就不能工作(我不记得为什么它需要,因为它是由另一个开发者开发的)。变量之前出现&符号时出现的PHP错误
我的问题是,为什么这会导致PHP 4.4出现错误,为什么它首先需要?
function exclude_widget_check($sidebars_widgets)
{
if(is_home())
{
foreach ($sidebars_widgets as $sidebar_id => &$widgets) {
if ('my-widget' != $sidebar_id) {
continue;
}
foreach ($widgets as $idx => $widget_id) {
if (0 === strncmp($widget_id, 'my_slider', 6)) {
echo 'Unset widget';
unset($widgets[$idx]);
}
}
}
}
return $sidebars_widgets;
}
顺便说一句:你可以去除你可以直接访问'$ sidebars_widgets ['my-widget']'在外部的'foreach'和'if'中。 – Gumbo 2011-06-16 18:07:55
Thanks Gumbo,你是否建议如果(is_home()){unset($ sidebars_widgets ['my-widget'];} – 2011-06-16 19:32:42
我的意思是外层'foreach'只是迭代,直到关键是'my-widget' – Gumbo 2011-06-16 19:37:45