Informática

PHP 5 – Construtores e Destrutores

[ratings]

MÉTODO CONSTRUTOR

Na versão 4 do PHP geralmente dá-se um mesmo nome da classe para um método fazendo com que ele seja executado quando o instanciamos.

Para quem não entendeu imagine a seguinte situação:

Iremos construir uma pequena classe chamada “Pao”.

<?php
Class Pao {
   /**
   * adiciona itens ao nosso pao
   */
   var $_addItem;
   /**
   * este pao() seria o nosso método construtor
   * Nota: uma função dentro de uma classe recebe o nome de método.
   /*

   function Pao()
   {
      $this->add_item = "manteiga";
   }
}
?>

Como vimos no código acima, temos a classe Pao e o método Pao. Ao dar o mesmo nome da classe ao método, automaticamente temos um delicioso pão com manteiga.

E quando isso acontece ?

Quando temos uma porção de código parecida com a que segue:

<?php
   $objeto = new Pao();
?>

No Zend Engine 2 há um método para fazer isso tudo, sendo assim, não há a necessidade de se colocar um método com o mesmo nome da função.

Nosso mais novo amigo se chama __construct()

Imaginemos agora uma outra classe chamada “casa” e vamos ver qual a diferença do código passado acima.

<?php

Class Casa {
    /**
     * Define itens para a nossa casa
     */
    var item;

    /**
     *  Esta é a forma de um método construtor
     *  no PHP5.
     */
    function __construct() 
    {
        $this->item = "paredes";
    }
}

?>

e então ao instanciar a nossa classe

<?php
     $home_sweet_home = new Casa();
?>

ele chama este método e já adiciona paredes.

MÉTODO DESTRUTOR

O PHP 5 também traz um outro método chamado método destrutor representado da seguinte maneira

__destruct()

Seu uso pode ser observado no seguinte exemplo:

<?php

Class SerHumano {

    var $variable;
    var $add_body;
    /**
     * Método construtor 
     */
    function __construct()
    {
         $this->variable = "do anything";
    }

    /**
     * Método que cria o corpo...
     *  
     */
    function make_body($part)
    {
         $this->add_body = $part;
    }
 
    function __destruct()
    {
         echo "eu sou um método destrutor";
    }
}

?>

Um simples uso disso seria:

$myself  = new SerHumano();
$myself->make_body("cabeça");
$myself->make_body("pé");

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

error: Content is protected!!