composer req sokil/php-smel
<?php
$evaluator = new ExpressionEvaluator();
$evaluator->evaluate(
['param' => ['eq' => 42]],
['param' => 42]
);
Expression may be represented as array or JSON string:
<?php
$expression = '{"field": {"eq": 42}}';
$expression = ["field" => ["eq" => 42]];
Expression consists of logical and comparison operations over nodes of some key-value structure:
<?php
$evaluator = new ExpressionEvaluator();
$result = $evaluator->evaluate(
// expression
[
'param1' => [
'eq' => 42,
],
'param2' => [
'eq' => 43,
]
],
// key-value structure
[
'param1' => 42,
'param2' => 43,
]
);
// will return true
Expression may be compound:
<?php
$evaluator = new ExpressionEvaluator();
$evaluator->evaluate(
// expression
['param' => ['gt' => 10, 'lt' => 30]],
// key-value struct
['param' => 20]
);
// will return true
Name | Description |
---|---|
eq | Equals |
neq | Not equals |
lt | Less then |
lte | Less then or equals |
gt | Greater then |
gte | Greater than or equals |
in | In array |
nin | Not in array |
{"someField": {"eq": 42}}
or shorthand
{"someField": 42}
{"someField": {"neq": 42}}
{"someField": {"gt": 42}}
If comparing greater or equals:
{"someField": {"gte": 42}}
{"someField": {"lt": 42}}
If comparing less or equals:
{"someField": {"lte": 42}}
{"someField": {"in": ["UKR", "USA"]}}
{"someField": {"nin": ["UKR", "USA"]}}