这让我烦恼。理论上它应该很容易,但我不理解。
基本上,我可以选择设置自定义算法来制作字符串或整数的“代码”。
这是用户生成的,然后我调用它。
我试图使用以下代码执行它:
$code = eval('return($custalg);');
但是返回输入的实际算法,而不是它将产生的值。
所以我的问题是,我如何设法在$ custalg中执行字符串作为php,然后将结果保存到变量中?
答案 0 :(得分:4)
看起来你不知道PHP中单引号'
和双引号"
字符串之间的区别。你应该使用:
$code = eval("return($custalg);");
如果您希望展开$custalog
:
双引号字符串最重要的特征是事实 变量名称将被扩展。有关详细信息,请参阅字符串解析。
所以基本上正确的语法取决于$custalg
是什么以及它的分配位置。在您的情况下,我猜您在主代码中分配了$custalg
,因此您不希望替换。然后使用这样的代码:
$code = eval("return \$custalg;");
答案 1 :(得分:1)
您可以使用PHP output control functions:
获得回音输出ob_start();
eval("echo $custalg;");
$tmp = ob_get_contents();
ob_end_clean();
$evalOutput = $tmp;
或者您只需将返回值分配给全局变量。