foreach内部函数在第一次运行后返回空白项目

时间:2017-10-30 16:38:14

标签: php

所以我用foreach创建了一个处理数组的函数:

<?php
function listFeat($feature) {
echo '<ul class="highlight-ul">';
    foreach ($feature as $key => $value){
        echo '<li class="highlight-ul">';
        echo $value['highlight'];
        echo '</li>';
    }
    unset($value);
echo '</ul>';

}
?>

但是当我打电话两次时:

<h2>prod</h2>
<?php listFeat($p_feat); ?>

<h2>mom</h2>
<?php listFeat($m_feat); ?>

我得到了这个结果:

PROD

  • 数组项目
  • 数组项目

MOM

  • 显示空li
  • 显示空li

我无法找出原因?

2 个答案:

答案 0 :(得分:0)

因为您在循环期间呼叫unset($value);。它基本上清除了变量。移除unset()电话,它应该按预期工作。

从您的示例来看,$p_feat$m_feat似乎引用了相同的数组对象。这就是为什么第一个电话也会清除第二个电话。

答案 1 :(得分:0)

您在函数listFeat中的代码是可以的。此外,您不需要unset($value);,因为它是一个局部变量,它永远不会被进一步使用。

最有可能的是,m_feat未正确初始化,或者如果您使用它们,则它的引用错误。