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

Uncaught Error php 8.1

Olá, quando executo php banco.php da o seguinte erro no terminal (código abaixo do erro)

C:\Users\raque\OneDrive\Área de Trabalho\Programação\Alura\PHP\oop>php banco.php PHP Fatal error: Uncaught Error: Typed property Conta::$saldo must not be accessed before initialization in C:\Users\raque\OneDrive\Área de Trabalho\Programação\Alura\PHP\oop\src\Conta.php:24 Stack trace:

#0 C:\Users\raque\OneDrive\Área de Trabalho\Programação\Alura\PHP\oop\banco.php(6): Conta->depositar(500.0)

#1 {main} thrown in C:\Users\raque\OneDrive\Área de Trabalho\Programação\Alura\PHP\oop\src\Conta.php on line 24

Fatal error: Uncaught Error: Typed property Conta::$saldo must not be accessed before initialization in C:\Users\raque\OneDrive\Área de Trabalho\Programação\Alura\PHP\oop\src\Conta.php:24 Stack trace:

#0 C:\Users\raque\OneDrive\Área de Trabalho\Programação\Alura\PHP\oop\banco.php(6): Conta->depositar(500.0)

#1 {main} thrown in C:\Users\raque\OneDrive\Área de Trabalho\Programação\Alura\PHP\oop\src\Conta.php on line 24


<?php

class Conta
{
    private string $cpfTitular;
    private string $nomeTitular;
    private float $saldo;

    public function sacar(float $valorASacar)
    {
        if ($valorASacar > $this->saldo) {
            echo 'Saldo indisponível' . PHP_EOL;
            return;
        }
        $this->saldo -= $valorASacar;
    }

    public function depositar(float $valorADepositar): void
    {
        if ($valorADepositar < 0) {
            echo "Valor precisa ser positivo";
            return;
        }
        $this->saldo += $valorADepositar;
    }

    public function tranferir(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;
    }
}
<?php
require_once('src/Conta.php');

$primeiraConta = new Conta();

$primeiraConta->depositar(500);
$primeiraConta->sacar(300);

echo $primeiraConta->recuperarSaldo();
1 resposta
solução!

Consegui resolver, coloquei $saldo = 0 na classe e funcionou.