sergej-kurakin / php-shunting-yard
重构后的重新打包:https://github.com/droptable/php-shunting-yard
dev-master
2014-01-05 12:43 UTC
Requires
- php: >=5.3.3
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-24 01:22:57 UTC
README
PHP Shunting Yard 实现
示例
简单方程解析
use RR\Shunt\Parser; $equation = '3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3'; $result = Parser::parse($equation); echo $result; //3.0001220703125
包含常量和函数的方程
use RR\Shunt\Parser; use RR\Shunt\Context; $ctx = new Context(); $ctx->def('abs'); // wrapper for PHP "abs" function $ctx->def('foo', 5); // constant "foo" with value "5" $ctx->def('bar', function($a, $b) { return $a * $b; }); // define function $equation = '3 + bar(4, 2) / (abs(-1) - foo) ^ 2 ^ 3'; $result = Parser::parse($equation, $ctx); echo $result; //3.0001220703125
作者
原始源代码来自 https://github.com/droptable/php-shunting-yard,一些修改来自 https://github.com/andig/php-shunting-yard。这只是为了 composer/packagist 的重构和重新打包。
通过 Composer 安装
在您的 composer.json 文件中定义以下需求
{ "require": { "sergej-kurakin/php-shunting-yard": "dev-master" } }
类加载
require_once "vendor/autoload.php";
MIT 许可证
特此授予任何获得本软件及其相关文档文件(“软件”)副本的人免费处理该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供的人进行此类处理,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定目的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论此类责任是基于合同、侵权或其他方式,以及与软件或软件的使用或其他操作相关。