private function dispara(literal $literal, hecho $hecho) { if ($literal->getEsNumerico()) { switch ($literal->getOprel()) { case literal::$DIFERENTE: return $literal->getValor() != $hecho->getValor(); case literal::$IGUAL: return $literal->getValor() == $hecho->getValor(); case literal::$MAYOR: return $hecho->getValor() > $literal->getValor(); case literal::$MAYOR_IGUAL: return $hecho->getValor() >= $literal->getValor(); case literal::$MENOR: return $hecho->getValor() < $literal->getValor(); case literal::$MENOR_IGUAL: return $hecho->getValor() <= $literal->getValor(); } } else { switch ($literal->getOprel()) { case literal::$IGUAL: return strcmp($literal->getValor(), $hecho->getValor() == 0) ? TRUE : FALSE; case literal::$DIFERENTE: return strcmp($literal->getValor(), $hecho->getValor() == 0) ? FALSE : TRUE; } } }
function clonar() { $clon = new literal(); $clon->setHecho($this->getHecho()->clonar()); $clon->setOprel($this->getOprel()); return $clon; }
$h6->setEsNumerico(TRUE); $r2 = new regla(); $r2->addLiteral($l1); $r2->setConsecuente($h6); $bwx->setReglas($r2); $l2 = new literal(); $l2->setHecho($h6); $l2->setOprel(literal::$IGUAL); $l3 = new literal(); $l3->setHecho($h4); $l3->setOprel(literal::$IGUAL); $r3 = new regla(); $r3->addLiteral($l2); $r3->addLiteral($l3); $h7 = new hecho(); $h7->setVariable('m'); $h7->setValor('oscar'); $h7->setEsNumerico(FALSE); $r3->setConsecuente($h7); $bwx->setReglas($r3); $meta = new hecho(); $meta->setVariable('m'); $literal = new literal(); $literal->setHecho($meta); $literal->setOprel(literal::$IGUAL); $bwx->bwcr($meta, $bh); var_dump($bh); ?> </body> </html>