Php 从字符串解析执行的逻辑顺序
我正在构建一个查询PDM系统的系统 使用逻辑运算符解析字符串的最佳方法是什么。假设输入字符串的格式为:Php 从字符串解析执行的逻辑顺序,php,Php,我正在构建一个查询PDM系统的系统 使用逻辑运算符解析字符串的最佳方法是什么。假设输入字符串的格式为: $string = '( (a OR b) and (a AND c) )'; 现在,考虑到a、b和c将被适当的查询子句(分别输入)替换,那么最好的解析方法是什么?查询不限于a、b和c(可能有更多或更少的子句),嵌套级别不限于2 最终结果应该是: $query->createContainer("and") ->createContainer("or")
$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='((a或(c和a))或(a和(f或(d和g))))
谢谢你的帮助 谷歌“分流码算法”用于将中缀转换为后缀符号,然后这将为您提供一个逻辑执行顺序感谢您的回复!我查了维基百科的文章。在这种情况下,你能给我一个如何实现算法的提示吗?