Gunakan kelas ekspresi saat Anda ingin mengevaluasi ekspresi matematika atau boolean dari sumber yang tidak dipercaya. Anda dapat menentukan variabel dan fungsi Anda sendiri, yang disimpan dalam objek.
*
/
-
+
%
, ^
, dan **
&&
, ||
, Dan !
>
<
==
!=
<=
>=
===
dan !==
pi
dan e
=~
>>
<<
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)
Mengevaluasi ekspresi dan mengembalikan hasilnya. Jika terjadi kesalahan, mencetak peringatan dan mengembalikan false. Jika $ expr adalah penugasan fungsi, pengembalian benar pada kesuksesan.
$e->e($expr)
Sinonim untuk $ E-> Evaluate ().
$e->vars()
Mengembalikan array asosiatif dari semua variabel dan nilai yang ditentukan pengguna.
$e->funcs()
Mengembalikan array dari semua fungsi yang ditentukan pengguna.
$e->suppress_errors
Diatur ke true untuk mematikan peringatan saat mengevaluasi ekspresi
$e->last_error
Jika evaluasi terakhir gagal, berisi string yang menggambarkan kesalahan. (Berguna saat Suppress_errors aktif).
$e->functions
Assoc Array yang berisi fungsi yang ditentukan secara eksternal.
$e->variables
Assoc Array yang berisi variabel yang ditentukan oleh pengguna dan eksternal.
Proyek ini dimulai sebagai garpu. Kode asli dibuat oleh Miles Kaufmann dan diterbitkan di phpclasses.org. Saya telah menambahkan banyak fitur dan perbaikan bug ke kode asli, tetapi kemudian memutuskan bahwa kode tersebut sangat sulit untuk dimodifikasi untuk menambahkan fitur baru dan memperbaiki bug. Jadi saya memutuskan untuk menulis ulang semuanya dari awal menggunakan PEG Parser Generator.
Kode asli masih tersedia sebagai versi 1.0 di Packagist dan kode sumber yang dapat Anda temukan di cabang Legacy.
Hak Cipta (C) 2024 Jakub T. Jankiewicz
Dirilis di bawah Lisensi MIT