Nas classes em PHP um construtor e um destrutor são funções especiais que são automaticamente chamadas quando um objecto é criado e destruído.

A função construtor é a mais útil das duas, especialmente porque permite-nos enviar parâmetros aquando da criação do objecto, que podem depois ser usados para inicializar variáveis no objecto.

Aqui fica um exemplo de uma classe com um construtor simples para que possam ver claramente como se constrói e como funciona:

 

Como podem ver, o construtor parece uma função normal, excepto o facto de começar com dois underscores. Em PHP, as funções com dois underscores antes do nome indica-nos que é uma função especial, uma função com um objectivo específico e funcionalidades extra, quando comparada com as funções normais. Uma função com o nome “__construct” é uma função construtora da classe e será chamada de cada vez que um objecto é criado. Vamos experimentar isso mesmo:

 

Com apenas uma linha de código o objecto será criado, o construtor chamado e as linhas de código dentro deste executadas, o que irá resultar em “Estou vivo!”. No entanto, como mencionado, a grande vantagem do construtor é a capacidade de lhe passarmos parâmetros que podem ser usados para inicializar as variáveis. Vamos ver:

 

Declarar um construtor com parâmetros é igual a declarar uma função normal, e passar os parâmetros é muito idêntico à chamada de uma função normal, mas com a introdução do “new” como já vimos. Um construtor pode ter os parâmetros que acharmos necessários.

Um destrutor é chamado quando um objecto é destruído. Em algumas linguagens de programação temos de destruir manualmente os objectos que criámos, mas em PHP, isto é controlado pelo Garbage Collector, que monitoriza os objectos e os destrói automaticamente quando deixam de ser necessários. Vamos ver o seguinte exemplo que é uma extensão do exemplo anterior:

 

Como podem ver, do destrutor para o construtor apenas difere o nome. Se experimentarem este exemplo, irão ver primeiro a mensagem do construtor, depois o nome do animal do qual fazemos o output na última linha, e por fim, quando o script termina, o objecto é destruído, o destrutor é chamado e é mostrada a mensagem de que o nosso animal acabou de morrer 🙂

Artigo anterior do tutorial PHP:

Definir e usar uma classe em PHP

Artigo seguinte do tutorial PHP:

Visibilidade – Classes em PHP

Tiago Ramalho

Tiago Ramalho é um profissional de Informática interessado em Internet, Programação .NET e PHP e blogging. Nos tempos livres escreve nos interessespessoais.com sobre Jardim, Saúde, Sistemas, utilitários e outros temas relacionados com informática.

More Posts - Website - Twitter - Pinterest - Google Plus