Construtores

Construtores são funções numa classe que são automaticamente chamados quando você cria uma nova instância da classe com new. Uma função se torna um construtor quando ele tem o mesmo nome da classe Se uma classe. não tiver um construtor, o construtor da classe base será chamado, se existir.

<?php
class CarrinhoDeComprasAutomatico extends CarrinhoDeCompras {
    function
CarrinhoDeComprasAutomatico() {
        
$this->add_item ("10", 1);
    }
}
?>

Isto define uma classe chamada CarrinhoDeComprasAutomatico que é um CarrinhoDeCompras mais um construtor que inicializa o carrinho com um item do artigo numero "10" cada vez que um novo CarrinhoDeComprasAutomatico for criado com "new". Construtores pode ter argumentos e esses argumentos podem ser opcionais, o que os torna muito mais práticos. Para permitir a criação de classes sem parâmetros, todos os parâmetros dos construtores pode ser feitos opcionais simplesmente por terem valores default.

<?php
class CarrinhoDeComprasComConstrutor extends CarrinhoDeCompras {
    function
CarrinhoDeComprasComConstrutor($item = "10", $num = 1) {
        
$this->add_item ($item, $num);
    }
}

// Fazendo compras do mesmo modo antigo
$carrinho_default = new CarrinhoDeComprasComConstrutor;

// Fazendo compres de verdade
$carrinhho_diferente = new CarrinhoDeComprasComConstrutor("20", 17);
?>

Você pode usar o operador @ para esconder erros gerados no construtor do objeto, por exemplo: @new.

<?php
class A
{
    function
A()
    {
        echo
"Eu sou o construtor de A.<br />\n";
    }

    function
B()
    {
        echo
"Eu sou uma função normal chamada B na classe A.<br />\n";
        echo
"Eu não sou o construtor de A.<br />\n";
    }
}

class
B extends A
{
}

// Isto irá chamar B() como um construtor.
$b = new B;
?>

A função B() na classe A se tornará silenciosamente um construtor na classe B, mesmo que isso nunca tenha sido planejado. O PHP 4 não se importa se a função foi definida na classe B, ou se ela foi herdada.

Cuidado

O PHP 4 não chama automaticamente os construtores da classe base a partir do construtor da classe derivada. É de sua responsabilidade propagar a chamada dos construtores herança acima, onde apropriado.

Destrutores são funções que são chamadas automaticamente quando um objeto é destruído, ou pela utilização de unset() ou pela simples saída do escopo. Não existem destrutores no PHP. Você pode usar register_shutdown_function() ao invés para simular a maioria dos efeitos dos destruidores.