如何在没有eval()的情况下存储逻辑数据?

时间:2014-12-24 22:02:37

标签: php mysql laravel eval

我正在开发一个应用程序,允许管理员为他们的商店设置特殊条件。例如:

if (($cartTotal > 200) && (has_item_in_cart($item))) { // free shipping, % discount, etc }

他们将有一个GUI来设置条件,我想知道如何存储信息。到目前为止,我提出的唯一解决方案是生成if语句并将其作为文本存储在数据库中,然后使用eval()进行评估。不过,我在公开的应用中使用eval()时非常犹豫。还有其他选择吗?

如果有任何可用的套餐,它将使用Laravel。

1 个答案:

答案 0 :(得分:1)

您可以使用Symfony的表达语言:http://symfony.com/doc/current/components/expression_language/introduction.html#usage

它至少比eval安全得多! :)