rodriados / mathr
Math expressions: parser and evaluator.
Installs: 1 206
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=8.0
Suggests
- ext-bcmath: *
This package is auto-updated.
Last update: 2025-07-06 11:54:33 UTC
README
Mathr is a fast mathematical expression parser, evaluator and calculator with some added juice.
Usage
The simplest usage possible for Mathr is by simply sending in a math expression.
<?php $mathr = new Mathr; $result = $mathr->evaluate("3 + 4 * 5"); echo $result; // 23
You also can create your own variables and functions!
<?php $mathr->evaluate("v = 10"); $mathr->evaluate("fibonacci(0) = 0"); $mathr->evaluate("fibonacci(1) = 1"); $mathr->evaluate("fibonacci(x) = fibonacci(x - 1) + fibonacci(x - 2)"); $result = $mathr->evaluate("fibonacci(v)"); echo $result; // 55
If you want to, it's possible to bind functions to native PHP closures!
<?php $mathr->set('triangle(b, h)', fn ($b, $h) => ($b * $h) / 2); $result = $mathr->evaluate('triangle(5, 8)'); echo $result; // 20
There are a plenty of native functions and variables which you can use at will.
<?php $mathr->evaluate("fibonacci(x) = ceil((φ ^ x - (1 - φ) ^ x) / sqrt(5))"); $result = $mathr->evaluate("fibonacci(10)"); echo $result; // 55
You can easily export and import your functions and variables.
<?php $exported = $mathr->export(); // Exports all bound functions and variables. $mathr->import($exported); // Imports functions and variables.
Install
The recommended way to install Mathr is via Composer.
{ "require": { "rodriados/mathr": "v3.0" } }