Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

PHP POO __destruct

Galera, no video em que o professor explica como funciona o método __destruct, parece que a função foi chamada 3 vezes, não intendi por que. Ele disse que esse método é chamado toda vez em que um objeto deixa de existir, mas como que um objeto deixa de exixitir??, ele disse que deixa de existir quando fica sem referencia, mas como aqueles outros objetos mesmo com a referencia "deixaram de existir"?.

1 resposta
solução!

Me passa o link do vídeo para eu dar uma olhada, para tentar tirar suas duvidas com mais clareza.

O instância do objeto deixa de existir quando ela não tem mais referência ou quando é chamado o seu metodo destrutor.

$test = new Conexao();

$test = NULL; //A partir daqui provavelmente a instância será destruída pelo Garbage Collector. Ou seja o objeto conexao deixou de exisitir

Ou vc pode destrutir o objeto chamando o metodo __desctruct

class Conexao {
    private $link = null;
    public function __construct() { //Auto-conecta
         $this->link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
    }

    public function __destruct() {
         mysqli_close($this->link);//desconecta
         $this->link = null;
    }
}

Me parece que você pode estar tendo dificuldades de entender a diferença entre um objeto e uma instância de um objeto. Toda vez que vez que vc cria um objeto, vc esta criando uma insância deste classe. O mesmo objeto pode ter diveresas instâncias, e cada uma tem uma referencia. Ou seja quando vc destroi um objeto, vc esta na verade destruindo apenas uma instâcia deste objeto.