Warning: Invalid argument supplied for foreach()

by Prabakaran 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)
{
...
}
}

817
like
0
dislike
0
mail
flag

You must LOGIN to add comments