我只是想知道PHP是否有一个函数可以采用字符串2-1并产生它的算术结果?
或者我是否必须手动执行此操作explode()以获取算术运算符的左右值?
允许用户输入他们喜欢的任何数学方程式(使用一个变量):
x + 5
1 - x/2
(x/3) * (56/13)
它们作为字符串存储在数据库中.当它们被检索时,我需要用'x'代替数字并检查等式的值.
我怎么能这样做?
我正在考虑编写一个解析器来解构字符串并将它们转换为方程式,但这听起来既昂贵又有问题.另一个选择是通过eval传递它们(但如果我可以帮助它,我不是使用eval的忠实粉丝).
有任何想法吗?
更新:我还需要能够获得类似"(x> 5)"的布尔值.evalMath无法做到这一点
更新2:我要火很多这些秒.我一直在研究eval在php中但是不能让它为(5> 4)返回一个布尔值但是我注意到js会这样做...也许我应该调查node.js ...
更新3:在尝试了node.js(并让它工作)之后,我回过头来获得eval以便在PHP中工作看到:php eval可以返回一个布尔值吗?
所以我将使用eval和一个非常非常硬核的用户输入过滤器.