从字符串解析执行的逻辑顺序

时间:2015-03-13 07:22:19

标签: php

我正在构建一个查询PDM系统的系统。

使用逻辑运算符解析字符串的最佳方法是什么。让我们说输入字符串的格式为:

$string = '( (a OR b) and (a AND c) )';

现在,假设a,b和c将被替换为适当的查询子句(单独输入),那么解析它的最佳方法是什么?查询不限于a,b和c(可能有更多或更少的子句),嵌套级别不限于2.

最终结果应该是:

$query->createContainer("and")
    ->createContainer("or")
        ->addCondition("a")
        ->addCondition("b")
        ->getParent()  //this moves the internal pointer back to parent container
    ->createContainer("and")
         ->addCondition("a")
         ->addCondition("c");

我已经为查询构建了对象接口(如上所示),但是我在解析输入字符串时遇到了问题。我仍然可以影响输入字符串的形式,所以也有改进建议。

更复杂字符串的示例:     $ string ='((OR(c AND a))或(a AND(f OR(d AND g))))&#39 ;;

感谢您的帮助!

0 个答案:

没有答案