使用eval从字符串计算数学表达式

使用eval从字符串计算数学表达式,第1张

使用eval从字符串计算数学表达式

尽管我不建议

eval
为此使用(这 不是 解决方案),但问题是
eval
期望完整的代码行,而不仅仅是片段。

$ma ="2+10";$p = eval('return '.$ma.';');print $p;

应该做你想做的。


更好的解决方案是为您的数学表达式编写一个标记器/解析器。这是一个非常简单的基于正则表达式的例子。

$ma = "2+10";if(preg_match('/(d+)(?:s*)([+-*/])(?:s*)(d+)/', $ma, $matches) !== FALSE){    $operator = $matches[2];    switch($operator){        case '+': $p = $matches[1] + $matches[3]; break;        case '-': $p = $matches[1] - $matches[3]; break;        case '*': $p = $matches[1] * $matches[3]; break;        case '/': $p = $matches[1] / $matches[3]; break;    }    echo $p;}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5441221.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存