首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用PHP从字符串计算数学表达式

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

Stack Overflow用户
提问于 2018-08-13 14:28:29
回答 3查看 7.3K关注 0票数 1

如何使用PHP将字符串形式的数学表达式计算到输出?

代码语言:javascript
运行
复制
<?php
    $ma ="min(2+10,5*1,max(8/2,8-2,abs(-10)))"; // math expression
    print $ma; // output of the calculation
?>
EN

回答 3

Stack Overflow用户

发布于 2018-11-01 22:47:48

我做了一个math_eval帮助器函数包,应该可以做你想要的。

示例用法:

代码语言:javascript
运行
复制
require 'vendor/autoload.php';

$two   = math_eval('1 + 1');
$three = math_eval('5 - 2');
$ten   = math_eval('2 * 5');
$four  = math_eval('8 / 2');

链接:https://github.com/langleyfoxall/math_eval

在后台,它包装了mossadal/math parser包。

票数 6
EN

Stack Overflow用户

发布于 2018-08-13 20:25:20

你可以使用PHP eval()函数来处理数学表达式。eval()函数只支持PHP代码,而不支持精确的数学表达式。因此,eval()函数中使用的数学表达式字符串应该是有效的PHP代码,您可以使用

代码语言:javascript
运行
复制
$ma = "min(2+10,5*1,max(8/2,8-2,abs(-10)))";
$result= eval('return '.$ma.';');
print $result;
票数 2
EN

Stack Overflow用户

发布于 2018-08-13 22:31:15

我在GitHub上发现了一些解析器,这个看起来非常有趣:

mossadal/math-parser: PHP parser for mathematical expressions

它可以这样使用:

代码语言:javascript
运行
复制
use MathParser\StdMathParser;
use MathParser\Interpreting\Evaluator;

$parser = new StdMathParser();

// Generate an abstract syntax tree
$AST = $parser->parse('1+2');

// Do something with the AST, e.g. evaluate the expression:
$evaluator = new Evaluator();

$value = $AST->accept($evaluator);
echo $value;

它还可以与cos()sin()等函数一起使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51816310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档