Você está aqui: PHP ::: Dicas & Truques ::: Programação Orientada a Objetos |
Como escrever um método ou função PHP que retorna uma referência para um objeto de uma determinada classeQuantidade de visualizações: 8379 vezes |
Em algumas situações gostaríamos de chamar um método ou função em PHP e obter, como retorno, um objeto de uma determinada classe. Nesta dica eu mostro como isso pode ser feito. Veja o código: <? // classe Cliente com duas variáveis privadas e seus // correspondentes métodos mutatórios e acessórios class Cliente{ private $nome; private $email; public function setNome($nome){ $this->nome = $nome; } public function getNome(){ return $this->nome; } public function setEmail($email){ $this->email = $email; } public function getEmail(){ return $this->email; } } // fim da classe Cliente // vamos escrever uma função que retornará um novo objeto da classe Cliente function obterCliente(){ $c = new Cliente; $c->setNome("Osmar J. Silva"); $c->setEmail("osmar@arquivodecodigos.net"); return $c; } // vamos chamar a função, obter o novo cliente e exibir os valores de suas // variáveis $cliente = obterCliente(); echo "Nome: " . $cliente->getNome() . "<br> E-Mail: " . $cliente->getEmail(); ?> Ao executar este código teremos o seguinte resultado: Nome: Osmar J. Silva E-Mail: osmar@arquivodecodigos.net Veja que, ao efetuar uma chamada à função obterCliente(), esta cria um novo objeto da classe Cliente e nos retorna uma referência a este objeto. Isso quer dizer que, mesmo após a finalização da função obterCliente(), a referência retornada ainda continuará ativa. A memória alocada por tal referência será liberada somente quando a variável usada para armazenar a referência (em nosso caso a variável $cliente) for também liberada (geralmente atribuindo NULL à variável que guarda a referência ao objeto). |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |