标题重写为:"foreach()函数的参数无效"
P粉419164700
P粉419164700 2023-08-21 12:03:34
0
2
528
<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粉419164700
P粉419164700

全部回复(2)
P粉811349112

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

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板