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

Dúvida sobre $saldo vs saldo

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

O código acima me retorna um Warning no php interativo quando vou chamar a função depositar(), porque na condicional 'else' ao invés de digitar ''$this->saldo" eu digitei $this->$saldo". Sei que aí está o erro. Mas o que eu gostaria de saber é o porque deste erro, como o PHP interpreta esta sintaxe "$saldo" por debaixo dos panos? Por que neste caso eu não posso utilizar o cifrão?O saldo neste caso não é uma variável? Sei que é errado, mas queria saber o porque...

E sobre o :void, é necessario eu tipificar que o método não tem retorno? E se no caso eu colocasse : float?

valeu:D

1 resposta
solução!

Olá, Gabriel. Tudo bem? No PHP as variáveis são representadas com "$", dessa forma quando você digita o código assim:

$this->$saldo // você está sendo redundante, pois o $this é usado principalmente para se referir a propriedades de uma classe

Ou seja, se você usa o $this você diz "Quero me referir a propriedade desta própria classe", Qual propriedade? saldo. A forma correta seria:

$this->saldo;

Sobre tipificar o retorno não é obrigatório especificar, mas é uma boa prática especificar o retorno, pois deixa seu código mais legível.

"E se no caso eu colocasse :float" - Nesse caso iria dar erro, pois você teria que ter um "return $variavelFloat;", ou seja, você seria obrigado a ter um retorno do tipo float.

Espero ter ajudado =)