如何使用php eval()用垂直线(|)求解数学方程

时间:2019-01-28 15:57:05

标签: php math eval

因此,我有一个算法创建者,我的用户可以使用可能的变量列表中的变量来创建算法。 它们创建的算法需要进行验证,因此我将变量替换为“ 1”只是为了检查它们是否有效并返回数字而不会产生任何错误。 我的问题是我需要能够创建

之类的算法
(0.5*(1+7-|1-7|))

问题在于垂直线(|),用于获取其中方程式的绝对值。当我将此方程式发送到eval()时,它将返回此错误:

  

解析错误:语法错误,意外的'|'在controller.php(425)中:   第1行上的eval()代码

是否有一种数学方法来获取我可以在此处使用的绝对值,或者是否有任何方法可以转义此字符,以使它不会出现错误,但仍然可以正确地计算方程式?

更新 最终接受了@AbraCadaver的建议,并做了

$string = preg_replace('/\|([\d.-]+)\|/', 'abs($1)', $string);

0 个答案:

没有答案