Ir para conteúdo

POWERED BY:

Arquivado

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

Simpático

[Resolvido] Problema ao chamar metodo

Recommended Posts

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

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

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

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

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

×

Informação importante

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