首页  >  问答  >  正文

标题重写为:"foreach()函数的参数无效"

<p>对我来说,经常遇到处理既可以是数组又可以是空变量的数据,并将这些数据提供给一些 <code>foreach</code>。</p> <pre class="brush:php;toolbar:false;">$values = get_values(); foreach ($values as $value){ ... }</pre> <p>当你用不是数组的数据来提供 foreach 时,会收到一个警告:</p> <blockquote> <p>警告:foreach() 中提供的参数无效 in [...]</p> </blockquote> <p>假设无法重构 <code>get_values()</code> 函数以始终返回数组(向后兼容性,不可用的源代码,或其他任何原因),我想知道避免这些警告的最清洁和最高效的方法是什么:</p> <ul> <li>将 <code>$values</code> 转换为数组</li> <li>将 <code>$values</code> 初始化为数组</li> <li>用 <code>if</code> 包装 <code>foreach</code></li> <li>其他(请提供建议)</li> </ul><p><br /></p>
P粉419164700P粉419164700449 天前527

全部回复(2)我来回复

  • P粉811349112

    P粉8113491122023-08-22 10:58:44

    这个怎么样?它更简洁,而且都在一行中。

    foreach ((array) $items as $item) {
     // ...
     }

    回复
    0
  • P粉771233336

    P粉7712333362023-08-22 00:25:34

    个人而言,我觉得这是最干净的 - 不确定是否是最有效的,注意!

    if (is_array($values) || is_object($values))
    {
        foreach ($values as $value)
        {
            ...
        }
    }

    我偏好的原因是当你一开始就没有任何东西时,它不会分配一个空数组。

    回复
    0
  • 取消回复