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

Erro ao deixar dois métodos na mesma linha

Seguindo a sugestão fiz o seguinte:

$contaJoao->sacar(2000)->depositar(500);

Porém deu o seguinte erro:

Fatal error: Uncaught Error: Call to a member function depositar() on null in C:\xampp\htdocs\alura\OOPHP1\index.php:13 Stack trace: #0 {main} thrown in C:\xampp\htdocs\alura\OOPHP1\index.php on line 13

Com duas variáveis de objetos separadas não deu erro.

2 respostas
solução!

Olá,

para funcionar corretamente, sua classe sacar deve ser assim:

    public function sacar($valor)
    {
        $this->saldo = $this->saldo - $valor;
        return $this;
    }

Assim, o método de saque retorna a referência pro objeto da ContaCorrente, e você consegue em sequência chamar outro método, no caso do depositar.

Sem retornar $this, você não poderia chamar os dois métodos em sequência.

Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software