PHP code example of ali-eltaweel / predkit
1. Go to this page and download the library: Download ali-eltaweel/predkit library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
ali-eltaweel / predkit example snippets
use Predkit\Predicate;
class IsEven extends Predicate {
public function test(mixed $number): bool {
return $number % 2 === 0;
}
}
$predicate = new IsEven();
use Predkit\Predicate;
$predicate = Predicate::fromCallable(function (mixed $number): bool {
return $number % 2 === 0;
});
$predicate->test(4); // true
$predicate->test(5); // false
$evenNumbers = array_filter([1, 2, 3, 4, 5], $predicate); // [2, 4]
use Predkit\Predicate;
$evenPredicate = Predicate::fromCallable(function (mixed $number): bool {
return $number % 2 === 0;
});
$greaterThanFivePredicate = Predicate::fromCallable(function (mixed $number): bool {
return $number > 5;
});
// and
$evenAndGreaterThanFivePredicate = $evenPredicate->and($greaterThanFivePredicate);
array_filter(range(0, 10), $evenAndGreaterThanFivePredicate); // [6, 8, 10]
// or
$evenOrGreaterThanFivePredicate = $evenPredicate->or($greaterThanFivePredicate);
array_filter(range(0, 10), $evenOrGreaterThanFivePredicate); // [0, 2, 4, 6, 7, 8, 9, 10]
// not
$oddPredicate = $evenPredicate->not();
array_filter(range(0, 10), $oddPredicate); // [1, 3, 5, 7, 9]
// nand
$evenNandGreaterThanFivePredicate = $evenPredicate->nand($greaterThanFivePredicate);
array_filter(range(0, 10), $evenNandGreaterThanFivePredicate); // [0, 1, 2, 3, 4, 5, 7, 9]
// nor
$evenNorGreaterThanFivePredicate = $evenPredicate->nor($greaterThanFivePredicate);
array_filter(range(0, 10), $evenNorGreaterThanFivePredicate); // [1, 3, 5]
// xor
$evenXorGreaterThanFivePredicate = $evenPredicate->xor($greaterThanFivePredicate);
array_filter(range(0, 10), $evenXorGreaterThanFivePredicate); // [ 0, 2, 4, 7, 9 ]
// xnor
$evenXnorGreaterThanFivePredicate = $evenPredicate->xnor($greaterThanFivePredicate);
array_filter(range(0, 10), $evenXnorGreaterThanFivePredicate); // [ 1, 3, 5, 6, 8, 10 ]