Construtor, Clone e Destrutor

<< Click to Display Table of Contents >>

Navigation:  Objetos >

Construtor, Clone e Destrutor

Previous pageReturn to chapter overviewNext page

Pagar.php

 

namespace classes\model;
 
class Pagar {
    
    private $valor;
    private $vcto;
   
    // construtor com 2 parâmetros
    public function __construct($valor$vcto) {
        $this->valor = $valor;
        $this->vcto = $vcto;
    }
    
    // quando é clonada, zera uma propriedade
    public function __clone() {
        $this->vcto = null;
    }
    
    // na destruição do objeto
    public function __destruct() {
        echo "<p>objeto foi destruído {$this->valor}</p>";
    }
    
    public function getValor() {
        return $this->valor;
    }
 
    public function getVcto() {
        return $this->vcto;
    }
 
    public function setValor($valor) {
        $this->valor = $valor;
    }
 
    public function setVcto($vcto) {
        $this->vcto = $vcto;
    }  
}

 

Exemplo.php

 

require __DIR__ . '/classes/autoload.php';
 
$pagar = new classes\model\Pagar(1.22getdate());
 

// a função clone instancia novo objeto. 
// se fizer apenas $pagar2 = $pagar ficam 2 variáveis apontando para mesmo objeto na memória$pagar2 = clone $pagar;
$pagar->setValor(1.99);
 
var_dump($pagar);
var_dump($pagar2);
 
$pagar = null// força destruição