标题重写为:"参数无效:foreach() 提供的参数无效"
P粉546138344
2023-08-21 12:14:09
<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>
这个怎么样?它更简洁,而且都在一行中。
个人而言,我觉得这是最干净的 - 不确定是否最高效,注意!
我偏好的原因是当你根本没有任何内容时,它不会分配一个空数组。