0

以下字符串(来自数据库)存储为变量,

str = "if($me == 1) 
{
 return array(9=>true,10=>true,11=>true)
} 
else 
 {
  return  array(9=>false,10=>false,11=>false)
 }"

由于脚本是动态的......所以需要通过传递一个变量来从中找到输出。谁能帮助我如何做到这一点。

4

2 回答 2

5

eval()会做你想做的事。

eval($string);

我真的不建议将 php 存储在您的数据库中,因为通常有更多可预测、可读、可理解和可维护的方法来处理您根据结果动态运行不同代码的问题。

于 2013-08-01T10:04:46.260 回答
0

你可以这样做:

<?php eval('?>' . $str . '<?php'); ?>

但是,eval 并不是执行代码的好方法。无论如何,我不建议将 php 代码存储在数据库中,因为它很难调试,而且它可能不安全,因为它可能包含恶意代码。

还要检查为什么很多人说“Eval is Evil”:

https://blogs.msdn.com/b/ericlippert/archive/2003/11/01/53329.aspx?Redirected=true https://javascriptweblog.wordpress.com/2010/04/19/how-evil-is -评估/

于 2013-08-01T10:05:18.277 回答