Olá, quando cheguei neste ponto da aula onde crio a public function _construct e removi os métodos de definição de CPF e nome e fui rodar no terminal recebi um aviso de Fatal error:
PHP Fatal error: Uncaught Error: Typed property Conta::$nomeTitular must not be accessed before initialization in C:\Users\PICHAU\Documents\Aulas Alura\Aula PHP\src\Conta.php:62Stack trace:
#0 C:\Users\PICHAU\Documents\Aulas Alura\Aula PHP\banco.php(9): Conta->recuperaNomeTitular()
#1 {main} thrown in C:\Users\PICHAU\Documents\Aulas Alura\Aula PHP\src\Conta.php on line 62
<?php
class Conta
{
private string $cpfTitular;
private string $nomeTitular;
private float $saldo;
public function __construct(string $cpfTitular, string $nomeTitular)
{
$this -> $cpfTitular = $cpfTitular;
$this -> $nomeTitular = $nomeTitular;
$this -> saldo = 0;
}
public function saca(float $valorASacar)
{
if ($valorASacar > $this -> saldo) {
echo "Saldo indisponível";
return;
}
$this -> saldo -= $valorASacar;
}
public function deposita(float $valorADepositar): void
{
if ($valorADepositar < 0) {
echo "Valor precisa ser positivo";
return;
}
$this -> saldo += $valorADepositar;
}
public function transfere(float $valorATransferir, Conta $contaDeDestino): void
{
if ($valorATransferir > $this -> saldo) {
echo "Saldo indisponível";
return;
}
$this -> saca($valorATransferir);
$contaDeDestino -> deposita($valorATransferir);
}
public function recuperaSaldo(): float
{
return $this->saldo;
}
public function recuperaCpfTitular(): string
{
return $this -> cpfTitular;
}
public function recuperaNomeTitular(): string
{
return $this -> nomeTitular;
}
}
Aqui estão os códigos do aquivo banco.php:
<?php
require_once 'src/Conta.php';
$primeiraConta = new Conta('123.456.789-10', 'Victor Barros');
$primeiraConta -> deposita(500);
$primeiraConta -> saca(300);
echo $primeiraConta -> recuperaNomeTitular(). PHP_EOL;
echo $primeiraConta -> recuperaCpfTitular(). PHP_EOL;
echo $primeiraConta -> recuperaSaldo(). PHP_EOL;
Estou usando o PHP 8. Fiquei imaginando que poderia ter algo relacionado, se eu não deixei passar algum erro bobo rsrs