PHP eval(array_as_string)返回null

时间:2012-10-19 14:20:54

标签: php eval

$arr = eval("array('foo'=>'bar');");

// returns null
var_dump($arr);

有人可以解释为什么我得到null而不是数组?

4 个答案:

答案 0 :(得分:16)

您需要return数组。

来自docs

  

eval()返回NULL,除非在评估的代码中调用return,在这种情况下,返回传递给return的值。

所以你需要这样做:

$arr = eval("return array('foo'=>'bar');");

答案 1 :(得分:1)

你的意思是

eval("\$arr = array('foo'=>'bar');"); 

var_dump($arr);

答案 2 :(得分:0)

首先,eval非常气馁,如manual中所述。

另外,你应该做$arr = eval("return array('foo'=>'bar');");之类的事情。使用eval函数初始化$arr。查看行动here

答案 3 :(得分:0)

eval函数执行给它的php代码。 由于您的代码不返回任何内容,因此它为null。 您需要返回数组并将其存储在变量中,如

$arr = eval("return array('foo'=>'bar');");