Ir para conteúdo

POWERED BY:

Arquivado

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

Scientist

[Resolvido] Erro na chamada de função

Recommended Posts

Quando executo meu site da este erro:

Fatal error: Call to undefined function populaEstilo() in C:\Program Files\VertrigoServ\www\Ache Roupas\admin\conteudo\loja\dao_loja.php on line 86

 

A linha que ele indica é esta:

 

 $pojo->setEstilo(populaEstilo($row_estilo = mysql_fetch_assoc($result_estilo)));

 

A função populaEstilo()

 

   private function populaEstilo($row){
	$est = new PojoEstilo();
	$est->setCod($row['COD_ESTILO']);
	$est->setNome($row['NOME_ESTILO']);
	$est->setDescricao($row['DESCRICAO_ESTILO']);
	return $est;
   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse populaEstilo é um método privado que só é 'visível' dentro da classe que a implementou.

 

A chamada ao método dentro desta classe deve ser desta forma(usando $this->)

$pojo->setEstilo( $this->populaEstilo( $row_estilo = mysql_fetch_assoc( $result_estilo ) ) );

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpa a pergunta, mas pq setEstilo recebe um método como argumento ?

 

clousure ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos coloquei assim :

 

$pojo->setEstilo($this->populaEstilo($row_estilo = mysql_fetch_assoc($result_estilo)));

porém continua o mesmo erro.

 

Willian, eu não estou passando um método como parametro, este método populaEstilo retorna um Objeto Estilo com todas suas propriedades preenchidas.

 

FUncionou ... era isso mesmo que vocÊ falou Carlos, o problema é que como tinha mais de uma chamada ao populaEstilo() eu não havia feito o $this->populaEstilo() nos outros trechos de codigo, mais já funcionou. Muito obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi como eu disse, se você está chamando este método fora da classe que a implementou, não vai funcionar.

 

Se for uma classe filha que está tentando utilizar este método, mude para protected.

 

EDIT

 

Não tinha visto sua resposta :)

 

 

Até :D

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.