Construtores

Construtores são funções em uma classe que são automaticamente chamadas quando você cria uma nova instância de uma classe utilizando o operador new. Um método se torna um construtor, quando ele possui o mesmo nome que sua classe. Se uma classe não tem método construtor, o construtor da classe base (classe 'pai') será então chamado, se existir.

<?php
class Auto_Cart extends Cart {
    function 
Auto_Cart() {
        
$this->add_item("10"1);
    }
}
?>

Isto define a classe Auto_Cart que é um Cart com a adição de um construtor que inicializa o carrinho com um item do artigo de número "10" toda vez que um novo Auto_Cart é criado utilizando "new". Construtores podem receber argumentos e estes podem ser opcionais, o que os tornam muito mais úteis. Para ser possível utilizar a classe sem parâmetros, todos os parâmetros do construtor devem ser criados como opicionais atribuindo-se valores padrões para os mesmos.

<?php
class Constructor_Cart extends Cart {
    function 
Constructor_Cart($item "10"$num 1) {
        
$this->add_item ($item$num);
    }
}
 
// Utilizando os valores padrões presentes no construtor
$default_cart = new Constructor_Cart;
 
// Setando novos parâmetros
$different_cart = new Constructor_Cart("20"17);
?>

Você também pode utilizar o operador @ para esconder os erros que podem ocorrer no construtor, ex.: @new.

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

    function 
B()
    {
        echo 
"Eu sou um método qualquer chamado B pertencente a classe A.<br />\n";
        echo 
"Eu não sou o construtor de A.<br />\n";
    }
}

class 
extends A
{
}

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

O método B() da classe A irá se tornar o construtor da classe B, apesar de que essa talvez não fosse a real intenção. O PHP 4 não se importa se o método foi definido na classe B ou se foi herdado.

Cuidado

O PHP não chama automaticamente os construtores das classes bases em um construtor de uma classe derivada. É de sua responsabilidade propagar a chamada apropriadamente, sempre que ache necessário.

Destrutores são métodos que são chamados automaticamente quando um objeto é destruido, seja via unset() ou simplesmente pela finalização do escopo. Não existem destrutores em PHP. Você pode utilizar register_shutdown_function() para simular a maioria dos efeitos dos destrutores.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top