$arr = eval(\"array(\'foo\'=>\'bar\');\");
// returns null
var_dump($arr);
Can someone please explain why did I get null instead of an array?
First of all, eval is highly discouraged as explained in the manual.
Also, you should be doing something like $arr = eval("return array('foo'=>'bar');"); ie. initialising $arr with the eval function. See it in action here
You need to return the array.
From the docs:
eval()returnsNULLunlessreturnis called in the evaluated code, in which case the value passed toreturnis returned.
So you need to do:
$arr = eval("return array('foo'=>'bar');");
The eval function executes the php code given to it. As your code returns nothing, it gives null. You need to return the array and store it in a variable like,
$arr = eval("return array('foo'=>'bar');");
Did you mean
eval("\$arr = array('foo'=>'bar');");
var_dump($arr);