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

// returns null
var_dump($arr);

配列ではなく null を取得した理由を誰か説明してもらえますか?

4

4 に答える 4

18

return配列が必要です。

ドキュメントから:

eval()NULLが評価されたコードで呼び出されない限り戻ります。returnその場合、に渡された値returnが返されます。

したがって、次のことを行う必要があります。

$arr = eval("return array('foo'=>'bar');");
于 2012-10-19T14:23:03.743 に答える
1

もしかして

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

var_dump($arr);
于 2012-10-19T14:22:38.633 に答える
0

eval 関数は、与えられた php コードを実行します。コードは何も返さないため、null が返されます。配列を返し、次のような変数に格納する必要があります。

$arr = eval("return array('foo'=>'bar');");
于 2012-10-19T14:28:22.577 に答える
0

まず第一に、マニュアルevalで説明されているように非常に落胆します。

また、次のようなことを行う必要があります$arr = eval("return array('foo'=>'bar');");$arreval 関数で初期化します。実際の動作はこちら

于 2012-10-19T14:24:17.123 に答える