nkonovski/boolean-evaluator

构建布尔表达式并将其应用于事物

dev-master / 1.0.x-dev 2018-04-03 08:21 UTC

This package is not auto-updated.

Last update: 2024-09-19 05:03:23 UTC


README

Software License

这是一个PHP实验,用于构建可以以任意方式评估的表达式。它不是为了生产而设计的,但如果您感兴趣,请给我留言,我会开始标记版本。

安装

通过Composer

$ composer require davidrjonas/boolean-evaluator

用法

<?php

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

use DavidRJonas\BooleanEvaluator as B;

$expr = (new B\Expression)
            ->bAnd('A', 'B')
            ->bOr('C', 'D')
            ->bNot(
                (new B\Expression)->bAnd('C', 'D')
            );

print (new B\Evaluator\Stringer)->apply($expr);
// output: A and B and (C or D) and not (C and D)

$evaluator = new B\Evaluator\SetContains;

var_dump($evaluator->apply($expr, ['A', 'B', 'C']));      // true
var_dump($evaluator->apply($expr, ['A', 'B', 'D']));      // true
var_dump($evaluator->apply($expr, ['A', 'B']));           // false, a C or D is missing
var_dump($evaluator->apply($expr, ['A', 'B', 'C', 'D'])); // false, C or D but not both

许可协议

MIT许可协议(MIT)。有关更多信息,请参阅许可文件