denissimon/formula-parser

解析和评估作为字符串给出的数学公式。

v2.7.1 2019-11-05 10:48 UTC

This package is not auto-updated.

Last update: 2024-09-15 13:06:02 UTC


README

Latest Stable Version Total Downloads License

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许可证