serger / eval-math
v3.0.2
2023-11-29 12:30 UTC
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-29 14:35:06 UTC
README
Miles Kaufman 编写的 EvalMath 的 Composer/Packagist 版本版权所有 (C) 2005 Miles Kaufmann http://www.twmagic.com/ 名称
EvalMath - safely evaluate math expressions
描述
Use the EvalMath class when you want to evaluate mathematical expressions
from untrusted sources. You can define your own variables and functions,
which are stored in the object. Try it, it's fun!
概述
`$m = new EvalMath;`
`// basic evaluation:`
`$result = $m->evaluate('2+2');`
`// supports: order of operation; parentheses; negation; built-in functions`
`$result = $m->evaluate('-8(5/2)^2*(1-sqrt(4))-8');`
`// create your own variables`
`$m->evaluate('a = e^(ln(pi))');`
`// or functions`
`$m->evaluate('f(x,y) = x^2 + y^2 - 2x*y + 1');`
`// and then use them`
`$result = $m->evaluate('3*f(42,a)');`
`// use methods (calc functions)
`$m->evaluate('1+max(2,3)') // => 4`
`$m->evaluate('if(1=2, 2+2, 5+5') // => 10
方法
`$m->evaluate($expr)`
Evaluates the expression and returns the result. If an error occurs,
prints a warning and returns false. If $expr is a function assignment,
returns true on success.
`$m->e($expr)`
A synonym for $m->evaluate().
`$m->vars()`
Returns an associative array of all user-defined variables and values.
`$m->funcs()`
Returns an array of all user-defined functions.
计算方法(计算函数)
max(n...,m)
返回给定参数中最大值的一个min(n...,m)
返回给定参数中最小值的一个if(expr, true_value, false_value)
(有iif
同义词)根据expr
的评估结果返回true_value
或false_value
创建您自己的自定义计算方法(计算函数)
You can create custom classes, that implements custom calc methods.
待办事项
- 改进文档
- 添加自定义运算符的能力
- 更多测试
致谢和版权
此软件集成了以下库和补丁:
- 原始 EvalMath 库,(C) 2005 Miles Kaufmann http://www.twmagic.com/
- Moodle 对 'calc functions' 的修改,https://github.com/moodle/moodle
- Composer/Packagist 版本,(C) Daniel Bojdo,https://github.com/dbojdo