数组创建的评估替代方案


Eval alternatives for array creation

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

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

我知道我可以使用

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

准备此值以传递给filter_val,但是还有其他方法可以做到这一点吗?

这个相关的帖子(虽然很棒)并没有处理我的确切问题。

我不会在eval()让你的字符串起作用。例如,某些主机上可能不允许使用该功能eval,因此您的应用程序将无法工作。

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

$options = json_decode($options_from_db);

或者正如John Conde提到的,你可以序列化它。