denissimon / formula-parser
解析和评估作为字符串给出的数学公式。
v2.7.1
2019-11-05 10:48 UTC
Requires
- php: >=5.4.0
This package is not auto-updated.
Last update: 2024-09-15 13:06:02 UTC
README
Formula Parser是一个用于解析和评估作为字符串给出的数学公式的库。
支持
- 运算符:+,-,*,/,^
- 变量:x,y,z,a,b
- 带小数点的数字
- 科学计数法表示的数字
- 常数:pi,e,Inf
- 函数:sqrt,abs,sin,cos,tan,log,exp
- 无限嵌套括号
- NaN(非数字)
安装
需要PHP 5.4或更高版本。PHP。
使用Composer安装
composer require denissimon/formula-parser
用法
require_once __DIR__ . '/vendor/autoload.php'; use FormulaParser\FormulaParser; $formula = '3*x^2 - 4*y + 3/y'; $precision = 2; // Number of digits after the decimal point try { $parser = new FormulaParser($formula, $precision); $parser->setVariables(['x' => -4, 'y' => 8]); $result = $parser->getResult(); // [0 => 'done', 1 => 16.38] } catch (\Exception $e) { echo $e->getMessage(), "\n"; }
$precision
参数默认为4,不需要指定
$parser = new FormulaParser('3+4*2/(1-5)^8'); $result = $parser->getResult(); // [0 => 'done', 1 => 3.0001]
初始化的对象$parser
有以下方法
setValidVariables($array)
覆盖默认有效变量。
setVariables($array)
设置变量。
getResult()
返回一个数组[0 => v1, 1 => v2],其中v1是'done'或'error',v2是计算结果或验证错误消息。
getFormula()
返回传递给构造函数的公式文本。
更多用法示例可以在tests/FormulaParserTest.php
中找到
许可证
遵循MIT许可证