Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Warning ao depositar

No interactive shell, após instanciar duas contas e tentar fazer um primeiro depósito, recebo o seguinte Warning: Uncaught Error: Typed property Conta::$saldo must not be accessed before initialization

Segue o código

php > require_once 'src\Conta.php';
php > $conta1 = new Conta();
php > $conta2 = new Conta();
php > $conta1->depositar(200);

O PHPStorm está configurado para o PHP 7.4

Atributos da classe Conta:

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

// métodos

}
3 respostas
solução!

Consegui resolver o problema definindo o valor inicial do saldo em 0

class Conta
{
    public string $cpfTitular;
    public string $nomeTitular;
    public float $saldo = 0;

// métodos

}

Achei estranho esse erro com o código que você postou, parece que está faltando algo pra que esse erro aconteça.

No PHP, até onde sei, vc não precisa atribuir obrigatóriamente um valor para inicar uma variável dentro de um classe como vc demonstrou.

Bruno, a partir do PHP 7.4 nós temos propriedades tipadas. Quando você tipa uma propriedade ela começa no estado "não-inicializado".

O Wilmar estava tentando acessar esse valor sem inicializá-lo, ou seja, o PHP não sabia que valor colocar lá dentro. :-)