用于阵列创建的Eval替代方案

时间:2015-03-13 16:18:00

标签: php eval

我将数组以字符串形式存储在数据库中以便以后检索: 数组的值恰好是filter_val调用的参数。

$str = 'array("options" => array("min_range" => 4))';

我知道我可以使用

eval('$options = ' . $str . ';');

准备传递给filter_val的值,但有没有其他方法可以做到这一点?

This related post(虽然优秀)没有处理我的确切问题。

1 个答案:

答案 0 :(得分:3)

我不会使用eval()来使您的字符串正常运行。例如,函数eval may be disallowed on some hosts,因此您的应用程序将无效。

更合适的方法是将您的选项存储在json_encode()'d字符串中,并在需要时进行解码。

$options = json_decode($options_from_db);

John Conde mentions, you can serialise it