標題重寫為:"foreach()函數的參數無效"
P粉419164700
2023-08-21 12:03:34
<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>
這個怎麼樣?它更簡潔,而且都在一行中。
個人而言,我覺得這是最乾淨的 - 不確定是否是最有效的,注意!
我偏好的原因是當你一開始就沒有任何東西時,它不會分配一個空數組。