標題重寫為:"參數無效: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>
這個怎麼樣?它更簡潔,而且都在一行中。
個人而言,我覺得這是最乾淨的 - 不確定是否最高效,注意!
我偏好的原因是當你根本沒有任何內容時,它不會分配一個空數組。