Warning: Invalid argument supplied for foreach()
by Prabakaran[ Edit ] 2012-09-03 09:09:17
It often happens to me to handle data that can be either an array or a null variable and to feed some foreach with these data.
$values = get_values();
foreach ($values as $value){
...
}
When you feed a foreach with data that are not an array, you get a warning:
Warning: Invalid argument supplied for foreach() in [...]
Assuming it's not possible to refactor the get_values() function to always return an array (backward compatibility, not available source code, whatever other reason), I'm wondering which is the cleanest and most efficient way to avoid these warnings:
#Casting $values to array
#Initializing $values to array
#Wrapping the foreach with an if
#Other (please suggest)
if (is_array($values))
{
foreach ($values as $value)
{
...
}
}