Bom dia, Estou seguindo a aula "02 Criando a classe Titular", mas quando vou fazer o teste no CMD, aparece esse warning:
PHP Warning: Call to private Conta::__destruct() from context '' during shutdown ignored in Unknown on line 0
Não sei como resolver :')
Abaixo meu código do Conta.php:
`<?php
class Conta {
private $titular;
private $saldo = 0;
// Variável geral da prórpia Classe Conta, então, criamos um atributo estático
private static $numeroDeContas = 0;
// O Método Contrutor é o primeiro método criado
// ele vai definir oq a classe Conta deverá receber como
// parametro obrigatoriamente, todas as classes que
// precisam receber um dado, deve ter a classe Construtora
public function __construct( Titular $titular )
{
$this->titular = $titular;
$this->saldo = 0;
// self = dentro da própria Classe
self::$numeroDeContas++;
}
// O método 'destruct' retira da memória todo 'lixo' criado
// da memória da máquina (objetos sem ponteiros ou objetos que
// deixaram de ser utilizados por exemplo
private function __destruct()
{
self::$numeroDeContas--;
}
// void = não retorna nenhum valor
public function sacar(float $valorASacar): void
{
// A 'variável 'this' pega a referecia do objeto
// represetando pela 'variavel' que chamou sem
// precisar enviar o parametro '$umaConta' por exemplo
if ($valorASacar > $this->saldo) {
echo "Saldo indisponível";
return;
}
$this->saldo -= $valorASacar;
}
public function depositar(float $valorADepositar): void
{
// Existe uma prática de programação para deixar o código
// mais limpo, de fácil leitura e mais com processamento
// mais rápido chamado Early Return que basicamente
// evita AO MÁXIMO o uso de 'else if' e 'else'
if ($valorADepositar < 0) {
echo "Valor precisa ser positivo";
}
$this->saldo += $valorADepositar;
}
public function transferir(float $valorATransferir, Conta $contaDestino): void
{
if ($valorATransferir > $this->saldo) {
echo "Saldo indisponível";
return;
}
$this->sacar($valorATransferir);
$contaDestino->depositar($valorATransferir);
}
public function recuperaSaldo(): float
{
return $this->saldo;
}
// Código omitido, pois static
public static function recuperaNumeroDeContas(): int
{
// Para acessar a variável estática, caso ela seja Publica
// usa-se Contas::$numeroDeContas
// Neste caso, nossa variável é privada, então criamos
// um método para leitura dela, como é da própria classe
// usamos 'self', por exemplo:
return self::$numeroDeContas;
}
public function recuperaNomeTitular(): string
{
return $this->titular->recuperaNome();
}
public function recuperaCpfTitular(): string
{
return $this->titular->recuperaCpf();
}
}`
Desde já agradeço a ajuda (;