3
respostas

Preciso de ajuda.....

C:\Alexandre\Alura\Formação PHP\4 - Avançando com Orientação>php testa-bonificacao.php

Fatal error: Uncaught TypeError: Return value of Alura\Banco\Modelo\Service\ControladorDeBonificacoes::recuperaTotal() must be of the type float, null returned in C:\Alexandre\Alura\Formação PHP\4 - Avançando com Orientação\src\Modelo\Service\ControladorDeBonificacoes.php:17 Stack trace:

#0 C:\Alexandre\Alura\Formação PHP\4 - Avançando com Orientação\testa-bonificacao.php(29): Alura\Banco\Modelo\Service\ControladorDeBonificacoes->recuperaTotal()

#1 {main} thrown in C:\Alexandre\Alura\Formação PHP\4 - Avançando com Orientação\src\Modelo\Service\ControladorDeBonificacoes.php on line 17

3 respostas

Aparentemente você não retornou nada, ou retornou nulo no seu método recuperaTotal. Sem ver o código não consigo te ajudar, Alexandre.

namespace Alura\Banco\Modelo\Service;

use Alura\Banco\Modelo\Funcionario;

class ControladorDeBonificacoes
{
    private float $totalDeBonificacoes = 0;

    public function adicionaBonificacao(Funcionario $funcionario)
    {
        $this->totalDeBonificacoes += $funcionario->calculaBonificacao();
    }

    public function recuperaTotal(): float
    {
        return $this->$totalDeBonificacoes;
    }
}

Alexandre, tem um erro de sintaxe no seu código. Não é $this->$totalDeBonificacoes;. Esse $ a mais está fazendo o PHP buscar uma propriedade na classe com o nome contido na variável $totalDeBonificações, o que não existe.

O correto seria $this->totalDeBonificacoes;

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