PHPackages                             avadim/math-executor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. avadim/math-executor

Abandoned → [avadim/ace-calculator](/?search=avadim%2Face-calculator)Library[Parsing &amp; Serialization](/categories/parsing)

avadim/math-executor
====================

Math expressions calculator with custom operators, functions and variables

v1.2.1(8y ago)0193MITPHPPHP &gt;=5.6

Since Sep 6Pushed 6y ago1 watchersCompare

[ Source](https://github.com/aVadim483/MathExecutor)[ Packagist](https://packagist.org/packages/avadim/math-executor)[ Docs](https://github.com/aVadim483/MathExecutor)[ RSS](/packages/avadim-math-executor/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (8)Dependencies (1)Versions (11)Used By (0)

MathExecutor
============

[](#mathexecutor)

[![License](https://camo.githubusercontent.com/4a56aefa72dec0e6d5e16cb615351b86da6671998565e8c70cff595e7723f0ce/68747470733a2f2f706f7365722e707567782e6f72672f61766164696d2f6d6174682d6578656375746f722f6c6963656e7365)](https://packagist.org/packages/avadim/math-executor)[![Latest Stable Version](https://camo.githubusercontent.com/c5e6cfe80cb14d504511336461bcf0aaf756a2ac592b8523a70c18be53e9906d/68747470733a2f2f706f7365722e707567782e6f72672f61766164696d2f6d6174682d6578656375746f722f76657273696f6e)](https://packagist.org/packages/avadim/math-executor)

Math expressions calculator with custom operators, functions and variables

This package no longer supported! Please use AceCalculator instead!

Install via Composer
--------------------

[](#install-via-composer)

|$ composer require avadim/math-executor

All instructions to install here:

Sample usage
------------

[](#sample-usage)

```
require 'vendor/autoload.php';

$calculator = new \avadim\MathExecutor\MathExecutor();

print $calculator->execute('1 + 2 * (2 - (4+10))^2 + sin(10)');

// cascade execution - variable $_ has result of previous calculation
print $calculator
        ->calc('4+10')
        ->calc('1 + 2 * (2 - $_)^2')
        ->calc('$_ + sin(10)')
        ->getResult();
```

Default operators and functions
-------------------------------

[](#default-operators-and-functions)

Default operators: `+ - * / ^`

Default functions:

- sin
- cos
- tn
- asin
- acos
- atn
- min
- max
- avg

Variables
---------

[](#variables)

Default variables:

```
$pi = 3.14159265359
$e = 2.71828182846

```

You can add own variable to executor:

```
$calculator->setVars([
    'var1' => 0.15,
    'var2' => 0.22
]);

$calculator->execute('$var1 + $var2');
```

Extra operators and functions
-----------------------------

[](#extra-operators-and-functions)

To load extra operators and functions use method `loadExtra()`:

```
$calculator->loadExtra();
```

Extra operators are boolean operators: `<  >= == !=`You can use boolean operators with function `if()`

```
print $calculator->execute('if(100+20+3 > 111, 23, 34)');
```

Custom functions
----------------

[](#custom-functions)

Add custom function to executor:

```
$calculator->addFunction('hypotenuse', function($a, $b) {
    return sqrt($a ** 2 + $b ** 2);
}, 2);

print $calculator->execute('hypotenuse(3,4)');
```

Custom operators
----------------

[](#custom-operators)

Add custom operator to executor:

```
