227690008 / formula-parser
解析和评估以字符串形式给出的数学公式。
v1.2.0
2022-11-24 03:27 UTC
Requires
- php: >=7.3.0
This package is auto-updated.
Last update: 2024-09-24 07:19:09 UTC
README
测试及自用,增加部分函数,请勿使用。 Test and self use, small parts and functions are added, please do not use. From:denissimon/formula-parser
Formula Parser是一个用于解析和评估以字符串形式给出的数学公式的库。
支持
- 运算符:+,-,*,/,^
- 变量:x,y,z,a,b
- 带有小数点'.'的数字
- E表示法的数字
- 常量:pi,e,Inf
- 函数:sqrt,abs,sin,cos,tan,log,exp,floor,ceil
- 无限嵌套括号
- NaN(不是一个数字)
安装
需要PHP 7.3或更高版本。PHP。
使用Composer安装
composer require 227690008/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许可证下授权。