標題重寫為:"foreach()函數的參數無效"
P粉419164700
P粉419164700 2023-08-21 12:03:34
0
2
490
<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)
    {
        ...
    }
}

我偏好的原因是當你一開始就沒有任何東西時,它不會分配一個空數組。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!