Estou com um problema no meu arquivo "banco.php", quando eu chamo a função para recuperarCpfTitular(); aparece o erro abaixo.
Error: PHP Fatal error: Uncaught Error: Call to undefined method Conta::recuperarCpfTitular() in C:\Users\thauan.silva\Desktop\Alura\orientacao-a-objetos\banco.php:16 Stack trace:
#0 {main}
Segue abaixo meus arquivos.
Conta.php
<?php
class Conta{ private Titular $titular; private float $saldo; private static int $numeroDeContas = 0;
public function __construct(Titular $titular){
$this->titular = $titular;
$this->saldo = 0;
self::$numeroDeContas++;
}
public function sacar(float $valorASacar): void{
if($valorASacar > $this->saldo){
echo"Saldo indisponível";
return;
}
$this -> saldo -= $valorASacar;
}
public function depositar(float $valorADepositar): void{
if($valorADepositar < 0){
echo "Valor precisa ser positivo";
return;
}
$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 recuperarSaldo(): float{
return $this->saldo;
}
public function recuperarNomeTitular(): string{
return $this->titular->recuperarNome();
}
public static function recuperarNumeroDeContas(): int{
return self::$numeroDeContas;
}
}
Titular.php
<?php
class Titular { private Cpf $cpf; private string $nome;
public function __construct(Cpf $cpf, string $nome)
{
$this->cpf = $cpf;
$this->validarNomeTitular($nome);
$this->nome = $nome;
}
public function recuperarCpfTitular(): string
{
return $this->cpf->recuperarCpf();
}
public function recuperarNome(): string
{
return $this->nome;
}
private function validarNomeTitular(string $nomeTitular)
{
if (strlen($nomeTitular) < 5) {
echo "Nome precisa ter pelo menos 5 caracteres";
exit();
}
}
}
Cpf.php
<?php
class Cpf { private string $cpf;
public function __construct(string $cpf)
{
$cpf = filter_var($cpf, FILTER_VALIDATE_REGEXP, [
'options' => [
'regexp' => '/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-[0-9]{2}$/'
]
]);
if ($cpf === false) {
echo "Cpf inválido";
exit();
}
$this->cpf = $cpf;
}
public function recuperarCpf(): string
{
return $this->cpf;
}
}
banco.php
<?php
require_once 'src/Conta.php'; require_once 'src/Titular.php'; require_once 'src/Cpf.php';
$primeiraConta = new Conta(new Titular(new Cpf('123.456.789-10'),'Vinicius Dias')); $primeiraConta->depositar(500); $primeiraConta->sacar(300);
$segundaConta = new Conta(new Titular(new Cpf('172.037.627-18'),'Thauan')); $segundaConta->depositar(1500); $segundaConta->sacar(500);
echo $primeiraConta->recuperarNomeTitular().PHP_EOL; echo $primeiraConta->recuperarCpfTitular().PHP_EOL; echo $primeiraConta->recuperarSaldo().PHP_EOL;
echo $segundaConta->recuperarNomeTitular().PHP_EOL; echo $segundaConta->recuperarCpfTitular().PHP_EOL; echo $segundaConta->recuperarSaldo().PHP_EOL;
echo Conta::recuperarNumeroDeContas();