0

これは私を悩ませています。理論的には簡単なはずですが、私は理論に生きていません。

基本的に、カスタムアルゴリズムを設定して、文字列または整数の「コード」を作成するオプションがあります。

これはユーザーが生成したもので、それを呼び出します。

このコードを使用して実行しようとしました:

$code = eval('return($custalg);');

しかし、それは入力された実際のアルゴリズムを返し、それが生成する値ではありません。

だから私の質問は、$custalg の文字列を php として実行し、結果を変数に保存するにはどうすればよいですか?

4

2 に答える 2

4

PHPの一重引用符'と二重引用符で囲まれた文字列の違いを認識していないようです。"以下を使用する必要があります。

$code = eval("return($custalg);");

展開したい場合$custalog

二重引用符で囲まれた文字列の最も重要な機能は、変数名が展開されるという事実です。詳細については、文字列の解析を参照してください。

ドキュメントで詳細を参照してください

したがって、基本的に正しい構文は、何が割り当てられているか$custalg、どこに割り当てられているかによって異なります。あなたの場合、あなたはメインコードで割り当てられていると思います$custalgので、置換は必要ありません。次のようなコードを使用します。

$code = eval("return \$custalg;");
于 2012-10-20T18:46:06.667 に答える
1

PHP 出力制御関数を使用して、エコー出力を取得できます。

ob_start();
eval("echo $custalg;");
$tmp = ob_get_contents();
ob_end_clean();
$evalOutput = $tmp;

または、戻り値をグローバル変数に割り当てるだけです。

于 2012-10-20T18:47:07.260 に答える