Title rewritten as: "The parameters of the foreach() function are invalid"
<p>It's common for me to deal with data that can be either an array or an empty variable, and feed that data to some <code>foreach</code>. </p>
<pre class="brush:php;toolbar:false;">$values = get_values();
foreach ($values as $value){
...
}</pre>
<p>When you provide foreach with data that is not an array, you will receive a warning: </p>
<blockquote>
<p>Warning: Invalid argument supplied in foreach() in [...]</p>
</blockquote>
<p>Assuming that the <code>get_values()</code> function cannot be refactored to always return an array (backward compatibility, unavailable source code, or any other reason), I would like to know how to avoid these warnings What is the cleanest and most efficient way: </p>
<ul>
<li>Convert <code>$values</code> to an array</li>
<li>Initialize <code>$values</code> to an array</li>
<li>Wrap <code>foreach</code></li> in <code>if</code>
<li>Other (please provide suggestions)</li>
</ul><p><br /></p>