我正在尝试创建一个能够处理类似查询的条件语句的对象。这样我就可以将两个条件“连接”在一起,以根据所使用的“连接”类型在它们之间创建依赖关系。我目前有一个包含以下方法的简单对象:
public function addCondition ( Condition $condition, $join = null )
{
$this->conditions[] = $condition;
}
public function validate ( )
{
foreach ( $this->conditions as $condition )
{
$result = $condition->validate( );
[...]
}
}
问题是,我需要能够在两个语句之间执行条件连接,这将影响 validate 方法的返回值。这个想法是您可以提供如下条件:
$this->addCondition($condition_1);
$this->addCondition($condition_2, 'AND');
$this->addCondition($condition_3, 'NOT');
然后,这将生成指定第三个条件的结果将反向链接以影响第一个条件的结果所需的逻辑。
在示例中,让我们说:
条件_1 = 苹果是红色的 condition_2 = 苹果成熟了 condition_3 = 苹果是金冠
使用这个我应该假设如果我要传递一个成熟的、红色和金色的美味苹果,那么 validate() 的结果将是错误的。该方法应该失败,因为 condition_3 的“加入”不是。
但是,目前还没有办法告诉代码整个方法的结果取决于前一个条件的结果以及它与它的连接方式。
任何帮助是极大的赞赏!谢谢。