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.
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.