Mathr is a fast mathematical expression parser, evaluator and calculator with some added juice.
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.
The recommended way to install Mathr is via Composer.
{
"require": {
"rodriados/mathr": "v3.0"
}
}