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;
 }
Exemple #3
0
$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>