Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

return empty array in php

Tags:

arrays

php

I have a function that returns an array, and is passed to foreach i.e.

foreach(function() as $val)

Since the array I am returning is declared in a series of if statements, I need to return an empty array if all the if statements are evaluated to false. Is this a correct way to do it?

if (isset($arr))
  return $arr;
else 
  return array();
like image 447
zhenming Avatar asked Dec 11 '12 01:12

zhenming


1 Answers

I would recommend declaring $arr = array(); at the very top of the function so you don't have to worry about it.

If you are doing the check immediately before you return, I do not recommend isset. The way you are using foreach is depending on an array being returned. If $arr is set to a number, for example, then it will still validate. You should also check is_array(). For example:

if (isset($arr) && is_array($arr))
    return $arr;
else 
    return array();

Or in one line instead:

return (isset($arr) && is_array($arr)) ? $arr : array();

But, like I said, I recommending declaring the array at the very top instead. It's easier and you won't have to worry about it.

like image 126
cegfault Avatar answered Oct 02 '22 09:10

cegfault