Verwenden Sie die Ausdrucksklasse, wenn Sie mathematische oder boolesche Ausdrücke aus nicht vertrauenswürdigen Quellen bewerten möchten. Sie können Ihre eigenen Variablen und Funktionen definieren, die im Objekt gespeichert sind.
*
/
-
+
%
, ^
und **
&&
, ||
, Und !
>
<
==
!=
<=
>=
===
und !==
pi
und e
-Konstanten=~
>>
<<
composer require jcubic/expression
<?
require_once ( __DIR__ . " /vendor/autoload.php " );
use jcubic Expression ;
$ e = new Expression ();
// basic evaluation:
$ result = $ e -> evaluate ( ' 2+2 ' );
// supports: order of operation; parentheses; negation; built-in functions
$ result = $ e -> evaluate ( ' -8(5/2)^2*(1-sqrt(4))-8 ' );
// support of booleans
$ result = $ e -> evaluate ( ' 10 < 20 || 20 > 30 && 10 == 10 ' );
// support for strings and match (regexes can be like in php or like in javascript)
$ result = $ e -> evaluate ( ' "Foo,Bar" =~ /^([fo]+),(bar)$/i ' );
// previous call will create $0 for whole match match and $1,$2 for groups
$ result = $ e -> evaluate ( ' $2 ' );
// create your own variables
$ e -> evaluate ( ' a = e^(ln(pi)) ' );
// or functions
$ e -> evaluate ( ' f(x,y) = x^2 + y^2 - 2x*y + 1 ' );
// and then use them
$ result = $ e -> evaluate ( ' 3*f(42,a) ' );
// create external functions
$ e -> functions [ ' foo ' ] = function () {
return " foo " ;
};
// and use them
$ result = $ e -> evaluate ( ' foo() ' );
$e->evalute($expr)
Bewertet den Ausdruck und gibt das Ergebnis zurück. Wenn ein Fehler auftritt, druckt eine Warnung und gibt falsch zurück. Wenn $ EXPR eine Funktionszuweisung ist, gibt es den Erfolg der TRIVE zurück.
$e->e($expr)
Ein Synonym für $ e-> evaluate ().
$e->vars()
Gibt ein assoziatives Array aller benutzerdefinierten Variablen und Werte zurück.
$e->funcs()
Gibt ein Array aller benutzerdefinierten Funktionen zurück.
$e->suppress_errors
Setzen
$e->last_error
Wenn die letzte Bewertung fehlgeschlagen ist, enthält eine Zeichenfolge, die den Fehler beschreibt. (Nützlich, wenn unterdrückung_errors eingeschaltet ist).
$e->functions
Assoc -Array, das extern definierte Funktionen enthält.
$e->variables
Assoc -Array, das Variablen enthält, die vom Benutzer und extern definiert sind.
Dieses Projekt begann als Gabel. Der ursprüngliche Code wurde von Miles Kaufmann erstellt und auf PHPCLASSS.org veröffentlicht. Ich habe viele Funktionen und Fehlerbehebungen in den Originalcode hinzugefügt, aber dann entschieden, dass der Code wirklich schwer zu ändern ist, um neue Funktionen hinzuzufügen und Fehler zu beheben. Deshalb entscheide ich mich, alles mit dem PEG -Parser -Generator von Grund auf neu zu schreiben.
Der Originalcode ist weiterhin als Version 1.0 auf Packagist und den Quellcode verfügbar, den Sie in Legacy Branch finden können.
Copyright (C) 2024 Jakub T. Jankiewicz
Veröffentlicht unter MIT -Lizenz