Simpático 0 Denunciar post Postado Maio 23, 2010 Olá pessoal, eu tenho uma classe onde nela eu crio uma instancia de outra classe para usar uma funcao, mas quando eu to chamando ela da o seguinte erro Fatal error: Call to a member function converteData() on a non-object in C:\Arquivos de programas\VertrigoServ\www\portalcomp\Usuario.Class.php on line 81 a classe que tem o metodo converteData <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * Description of FuncoesClass * * @author */ class FuncoesClass { private $data; public function __construct() { } public function __destruct() { } public function converteData($data, $tipo){ if($tipo == 1){ $d = explode("/", $data); $this->data = $d[2]."-".$d[1]."-".$d[0]; return $this->data; }else if($tipo == 2){ $d = explode("-", $data); $this->data = $d[2]."/".$d[1]."/".$d[0]; return $this->data; } } } ?> a classe usuario é a seguinte <?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * Description of UsuarioClass * * @author */ include_once "Funcoes.Class.php"; class UsuarioClass { private $nome; private $sobrenome; private $cpf; private $rg; private $dt_nascimento; private $login; private $senha; private $permissao; private $func; public function __contruct(){ $this->func = new FuncoesClass(); } public function __destruct() { } public function getNome(){ return $this->nome; } public function getSobrenome(){ return $this->sobrenome; } public function getCpf(){ return $this->cpf; } public function getRg(){ return $this->rg; } public function getDt_nascimento(){ return $this->func->converteData($this->dt_nascimento,2); } public function getLogin(){ return $this->login; } public function getSenha(){ return $this->senha; } public function getPermissao(){ return $this->permissao; } public function setNome($nome){ $this->nome = $nome; } public function setSobrenome($sobrenome){ $this->sobrenome = $sobrenome; } public function setCpf($cpf){ $this->cpf = $cpf; } public function setRg($rg){ $this->rg = $rg; } public function setDt_nascimento($dt_nascimento){ $this->dt_nascimento = $this->func->converteData($dt_nascimento,1);//nao sei qual o erro esta dando aqui } public function setLogin($login){ $this->login = $login; } public function setSenha($senha){ $this->senha = md5($senha); } public function setPermissao($permissao){ $this->permissao = $permissao; } } ?> e o arquivo onde eu instancio a classe usuario <?php include_once 'Evento.Class.php'; include_once 'Usuario.Class.php'; $evento = new EventoClass(); $evento->setData("22/10/2010");//se eu der um print_r($evento) aki eu vejo q converteu echo $evento->getData();//mais aki ele nao faz nada print "<br>"; $usuario = new UsuarioClass(); $usuario->setCpf("11111111111");//funciona como deveria ate aqui echo $usuario->getCpf(); $usuario->setDt_nascimento("03/12/1986"); echo $usuario->getDt_nascimento(); ?> esse codigo ta funcionando ate a hora em que eu add um cpf em usuario...depois ele para. Se alguem puder me ajudar ai...vlw!! Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Costa da Silva 0 Denunciar post Postado Maio 23, 2010 cara na classe class FuncoesClass tem que ter os métodos de Get e Set pois o atributo esta como private... e na hora de criar o objeto dentro do classe UsuarioClasse() você a classe com o nome errado new EventoClass(); mude para $this->func = new FuncoesClass(); se der erro manda ae de novo... se der erro faz em herança mesmo UsuariosClass extends FuncoesClass; Compartilhar este post Link para o post Compartilhar em outros sites
ozorio silva 0 Denunciar post Postado Maio 23, 2010 ai cara não seria a falta de herança tenta assim class UsuarioClass extends FuncoesClass{ atributos blabla; } public function getDt_nascimento(){ parent::converteData($data, $tipo); return $this->func->converteData($this->dt_nascimento,2); } Compartilhar este post Link para o post Compartilhar em outros sites
Simpático 0 Denunciar post Postado Maio 24, 2010 Daniel eu add os metodos get e set na classe FuncoesClass, porem ainda esta dando o mesmo erro.O que eu to achando estranho e que este erro so acontece com a classe UsuarioClass quando eu utilizo em EventoClass funciona. <?php include_once 'Evento.Class.php'; include_once 'Usuario.Class.php'; $evento = new EventoClass(); $evento->setData("22/10/2010");//se eu der um print_r($evento) aki eu vejo q converteu echo $evento->getData();//mais aki ele nao faz nada print "<br>"; $usuario = new UsuarioClass(); $usuario->setCpf("11111111111");//funciona como deveria ate aqui echo $usuario->getCpf(); $usuario->setDt_nascimento("03/12/1986"); echo $usuario->getDt_nascimento(); ?> quando eu faco isso a saida eh 22/10/2010 11111111111 o problema eh na hora de chamar $usuario->setDt_nascimento("03/12/1986"); Ozorio eu queria fazer isso ai sem ter que usar herança. Alguma ideia? pessoal funcionou...eu tinha esquecido o "s" do __construct(). mais agora encontrei um outro problema...eu tento fazer essas operações instanciando o objeto professor, que estende usuario ai da pau novamente o mesmo erro Fatal error: Call to a member function converteData() on a non-object in C:\Arquivos de programas\VertrigoServ\www\portalcomp\model\UsuarioClass.php on line 81 Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Costa da Silva 0 Denunciar post Postado Maio 24, 2010 cara meu conselho é que você use um IDE para facilitar a analise do codigo, IDE's como NetBeas 7.5 ou Eclipe for PHP, pois elas fazendo quase todo o trabalho e melhor ainda concertam esses tipos de erros que nós programadores temos. site da netbeas -> Clique aqui site do eclipse ->Clique aqui Compartilhar este post Link para o post Compartilhar em outros sites
Simpático 0 Denunciar post Postado Maio 25, 2010 Cara eu ja estou usando uma IDE, eu uso o netbeans 6.8 e nele não esta detectanto erro algum Compartilhar este post Link para o post Compartilhar em outros sites
Simpático 0 Denunciar post Postado Maio 25, 2010 Problema resolvido galera... foi so usar o parent::__construct(); dentro do contrutor de professor que funcionou Compartilhar este post Link para o post Compartilhar em outros sites