标题重写为:"参数无效:foreach() 提供的参数无效"
P粉546138344
P粉546138344 2023-08-21 12:14:09
0
2
451
<p>对于我来说,经常遇到处理既可以是数组又可以是空变量的数据,并将这些数据提供给一些<code>foreach</code>。</p> <pre class="brush:php;toolbar:false;">$values = get_values(); foreach ($values as $value){ ... }</pre> <p>当你将一个不是数组的数据提供给foreach时,会收到一个警告:</p> <blockquote> <p>Warning: Invalid argument supplied for 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>
P粉546138344
P粉546138344

全部回复(2)
P粉635509719

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

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

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

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

我偏好的原因是当你根本没有任何内容时,它不会分配一个空数组。

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