$arr = eval("array('foo'=>'bar');");
// returns null
var_dump($arr);
有人可以解释为什么我得到null而不是数组?
答案 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');");