rossonero585 / php-expression
用于计算数学表达式的简单库
v2.0.1
2022-11-17 05:47 UTC
Requires
- php: >=7.2
Requires (Dev)
- phpstan/phpstan: ^1.2
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-09-17 09:48:43 UTC
README
描述
此库允许使用数字、括号、数学符号(+,-,*,/)创建数学表达式,然后使用不同的参数执行它们。它还允许在表达式内部添加自定义函数以执行。它通过接收动态生成的字符串并通过 eval
函数运行它来工作。
示例用法
简单表达式
<?php $expressionBuilder = new \Rossonero585\PhpExpression\ExpressionBuilder(); $expression = $expressionBuilder ->addArguments(['a', 'b']) ->create('a + b'); echo $expression->execute(["a" => 5, "b" => 5]); // 10 echo $expression->execute(["a" => 2, "b" => 1]); // 3
添加自定义函数
<?php $expressionBuilder = new \Rossonero585\PhpExpression\ExpressionBuilder(); $expression = $expressionBuilder ->addFunction('convert', function ($value, $curr1, $curr2) { // do some stuff here return 61; }) ->addArguments(["x", "curr1", "curr2"]) ->create('1.1 * convert(x, curr1, curr2) + 100'); $result = $expression->execute([ "x" => 100, "curr1" => "USD", "curr2" => "RUB" ]);