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

Função sacar não funciona de jeito nenhum

Meu código está exatamente como o do vídeo mas sempre entra na condicional $valorASacar > $this->$saldo. O que será que pode estar acontecendo?

<?php

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

    public function sacar(int $valorASacar)
    {
        if ($valorASacar > $this->$saldo){
            echo "Saldo indisponível";
        }else{
            $this->$saldo -= $valorASacar;
        }
    }
}

Segue a saída do terminal php:

php > require 'Conta.php';
php > conta1 = new Conta();

Parse error: syntax error, unexpected '=' in php shell code on line 1
php > $conta1 = new Conta();
php > $conta2 = new Conta():
php > ;

Parse error: syntax error, unexpected ':' in php shell code on line 1
php > $conta2 = new Conta();
php > $conta1->saldo = 500;
php > $conta2->saldo = 600;
php > $conta1->sacar(50);
Saldo indisponível
2 respostas
solução!

Ao utilizar o $this, o nome da propriedade que vem em seguida não precisa do $. No caso, você deve usar $this->saldo ao invés de $this->$saldo!

Oi Vinicius,

Conserte o seu código do jeito que o Murilo falou, mas o problema que seu terminal alerta são outros dois diferentes:

php > conta1 = new Conta();

No código acima você esqueceu de por o cifrão na variável $conta1

php > $conta2 = new Conta():

Já nesse código acima você esqueceu o ponto-vírgula(;) e pôs dois ponto (:)