0
尽管建议不要使用eval(),但我必须将其用于我的项目的某个部分。PHP eval不会产生预期结果
一般来说,我想提供一个系统管理员上传包含php代码的文件的方法 - php代码存储在数据库中,并最终在满足特定条件时加载和执行。
由于这是一个只能由少数人访问的内部网应用程序,安全方面并不严重。
由eval()执行的php代码可能是任何可能的代码。
$some_array = array();
$some_array[0] = 'Hello World';
echo $some_array[0];
这段代码的输出简直就是Hello World。
eval("
$some_array = array();
$some_array[0] = 'Hello World';
echo $some_array[0];
");
理论上这段代码的输出应该是相同的,但事实上并非如此。
我收到此错误信息:
Notice: Undefined variable: some_array in C:\xampp\htdocs\test.php on line 8
Notice: Undefined variable: some_array in C:\xampp\htdocs\test.php on line 8
Notice: Undefined variable: some_array in C:\xampp\htdocs\test.php on line 10
Parse error: syntax error, unexpected '=' in C:\xampp\htdocs\test.php(12) : eval()'d code on line 3
这似乎是一个简单的事情 - 但这个问题已经让我忙了好几个小时......
您必须为您的字符串使用单引号而不是双引号。在双引号中,php会尝试用它们的值替换$变量。 – DaKirsche
[PHP中单引号和双引号字符串有什么区别?]可能的重复(http://stackoverflow.com/questions/3446216/what-is-the-difference-between-single-quoted-and -double-quoted-strings-in-php) –
从** evil ** eval!一个好的代码设计不需要eval –