Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nelioats

Query Object - Livro do Pablo Dall' Oglio - TCriteria erro de vari

Recommended Posts

Pessoal boa noite,

 

Comecei a estudar pelo livro do Pablo Dall' Oglio porem ao chegar no cap referente a Query Object, onde existe as seguintes classes:

 

<?php
abstract class TExpression{
const AND_OPERATOR = 'AND ';
const OR_OPERATOR = 'OR ';
abstract public function dump();
}

 

 

 

<?php
class TCriteria extends TExpression {
private $expressions; //armazena a lista de expressoes
private $operators; //armazena a lista de operadores
private $properties;//propriedades do criterio
public function add(TExpression $expression, $operator = self::AND_OPERATOR){
if(empty($this->expressions)){
unset($operator);
}
$this->expressions[] = $expression;
$this->operators[] = $operator;
}
public function dump(){
if(is_array($this->expressions)){
foreach($this->expressions as $i=> $expression){
$operator = $this->operators[$i];
$result .= $operator. $expression->dump().' ';
}
$result = trim($result); //metodo trim retira espaco no inicio e final de uma string
return "({$result})";
}
}
public function setProperty($property, $value){
$this->properties[$property] = $value;
}
public function getProperty($property){
return $this->properties[$property];
}
}
?>
<?php
function __autoload($classe){
include_once "app.ado/$classe.class.php";
}
$criteria = new TCriteria;
$criteria->add(new TFilter('idade','<',16),TExpression::OR_OPERATOR);
$criteria->add(new TFilter('idade','>',60),TExpression::OR_OPERATOR);
echo $criteria->dump();
echo '<br>';
$criteria1 = new TCriteria;
$criteria1->add(new TFilter('idade','IN',array(24,25,26)));
$criteria1->add(new TFilter('idade','NOT IN',array(10)));
echo $criteria1->dump();
echo '<br>';
?>
Acontece o seguinte erro:
Notice: Undefined variable: operator in C:\wamp\www\php\PDO Query Objects\app.ado\TCriteria.class.php on line 21
Notice: Undefined variable: result in C:\wamp\www\php\PDO Query Objects\app.ado\TCriteria.class.php on line 36
Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.