输出缓冲的替代方法是放入eval';d代码转换为变量


Alternative to output buffering to put eval'd code into a variable

我需要评估一个变量中的一些php,并将输出放入另一个变量。

我有以下代码

                ob_start();
                $php = "echo 'cat';";
                eval($php);
                $result = ob_get_contents();
                ob_end_clean();
                echo $result;

有没有什么方法可以在没有输出缓冲的情况下做到这一点?可能带有create_function?

首先,文档(php.net/manual/en/function.eval.php)中立即提到了强制性的"eval是危险的"。


第二,为什么不把$result放在eval中呢?

$php = "$result = 'cat';

然后你就可以把结果变量全部设置好了。

$output = '';
eval('$output="cat";');
echo $output;