0

JavaScript では問題なく使用eval('1+1')できますが、何らかの理由でこれを PHP で動作させることができません。これは内部 (非公開) Web ページであるため、セキュリティは問題になりません。どのようにコーディングしても、500 Internal Server Error が表示されます。

PHPファイルで次のようなことをしようとしています:

$expression='1+1';

echo "eval($expression)";

PHPのeval()関数は JavaScript の同等のものと同じではありませんか、それとも実装が単純ではありませんか?

4

5 に答える 5

1

次のコードがあります。

$expression='1+1';
echo "eval($expression)";

eval()ステートメントを引用しているので、eval(1+1)文字通り印刷するだけです。

eval()有効な表現が必要です。

あなたはおそらく探しているでしょう:

$expression='1+1'; 
echo eval("echo $expression;");

デモ!

于 2013-10-19T07:54:42.173 に答える
0

http://php.net/manual/en/function.eval.php

eval()内部サーバーの有無に関わらず非常に危険な機能ですのでご注意ください。

現在、eval()PHP では PHP コードを実行できます。あなたがしているのは、実行中の PHP コードをエコーすることです。

そうは言っても、これを試してください:

$expression = "1+1";
echo eval("echo $expression;");
于 2013-10-19T07:53:44.013 に答える
0

eval()任意の数式のようなものだけでなく、PHP コードを実行します。 1+1は有効な PHP コード式ではありません。したがって、実行する適切な PHP 式を指定してください。お気に入り:

$expression='echo 1+1;'; 
eval($expression);

評価される有効な PHP コード。

参照

于 2013-10-19T07:55:30.243 に答える
0

これを試して、

eval('$expression =1+1;');
echo $expression;
于 2013-10-19T07:57:47.930 に答える