Bom dia,
Já conferi umas 5 x meu projeto com o do professor...ja inverti a ordem de algumas coisas, inclusive ao conferir com o dele notei um pequeno erro que alguem já relatou em algum topico do nome e deixei do jeito corrigido. Alguém tem idéia do que pode estar causando estes erros, abaixo? Irei enviar todos os arquivos....menos o CPF.php pois testei só isto e estava funcionando direitinho.
PHP Notice: Undefined variable: vinicus in D:\Pastas Cristina\Aestudos2022\formacaophp\php_primeiros-passos\projeto\banco.php on line 9
Notice: Undefined variable: vinicus in D:\Pastas Cristina\Aestudos2022\formacaophp\php_primeiros-passos\projeto\banco.php on line 9 PHP Fatal error: Uncaught TypeError: Argument 1 passed to Conta::_construct() must be an instance of Titular, null given, called in D:\Pastas Cristina\Aestudos2022\formacaophp\phpprimeiros-passos\projeto\banco.php on line 9 and defined in D:\Pastas Cristina\Aestudos2022\formacaophp\php_primeiros-passos\projeto\src\Conta.php:9 Stack trace:
#0 D:\Pastas Cristina\Aestudos2022\formacaophp\php_primeiros-passos\projeto\banco.php(9): Conta->__construct(NULL)
#1 {main} thrown in D:\Pastas Cristina\Aestudos2022\formacaophp\php_primeiros-passos\projeto\src\Conta.php on line 9
banco.php
<?php
require_once 'src/Conta.php';
require_once 'src/Titular.php';
require_once 'src/CPF.php'; //ja coloquei este antes também e continuou com erro...
$vinicius = new Titular(new CPF('123.456.789-10'),'Vinicius Dias');
$primeiraConta = new Conta($vinicus);
$primeiraConta->deposita(500);
$primeiraConta->saca(300);
echo $primeiraConta->recuperaNomeTitular() . PHP_EOL;
echo $primeiraConta->recuperaSaldo() . PHP_EOL;
echo $primeiraConta->recuperaCpfTitular() . PHP_EOL;
$patricia = new Titular(new CPF('987654321-10'), 'Patricia');
$segundaConta = new Conta($patricia);
var_dump($segundaConta);
$juliana = new Titular(new CPF('1234567810'), 'Juliana');
$terceiraConta = new Conta($juliana);
//unset($segundaConta);
echo Conta::recuperaNumeroDeContas();
Titular.php
<?php
class Titular
{
private CPF $cpf;
private string $nome;
public function __construct(CPF $cpf, string $nome)
{
$this->cpf = $cpf;
$this->validaNomeTitular($nome);
$this->nome = $nome;
}
public function recuperaCPF(): string
{
return $this->cpf->recuperaNumero();
}
public function recuperaNome(): string
{
return $this->nome;
}
private function validaNomeTitular(string $nomeTitular)
{
if (strlen($nomeTitular) < 5) {
echo "Nome precisa ter pelo menos 5 caracteres";
exit();
}
}
}
Conta.php
<?php
class Conta
{
private Titular $titular;
private float $saldo = 0;
private static $numeroDeContas = 0;
public function __construct(Titular $titular)
{
$this->titular = $titular;
$this->saldo = 0;
self::$numeroDeContas++;
}
public function __destruct()
{
self::$numeroDeContas--;
}
public function saca(float $valorASacar): void
{
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 $contaDestino): void
{
if ($valorATransferir > $this->saldo) {
echo "Saldo indisponível";
return;
}
$this->saca($valorATransferir);
$contaDestino->deposita($valorATransferir);
}
public function recuperaSaldo(): float
{
return $this->saldo;
}
public function recuperaNomeTitular(): string
{
return $this->titular->recuperaNome();
}
public function recuperaCpfTitular(): string
{
return $this->titular->recuperaCpf();
}
public static function recuperaNumeroDeContas(): int
{
return self::$numeroDeContas;
}
}
Obrigada!!!!