arquivo avaliador.php
<?php
namespace Alura\Leilao\Service;
use Alura\Leilao\Model\Leilao;
class avaliador
{
private $maiorValor;
public function avalia(Leilao $leilao):void{
$lances = $leilao->getLances();
$ultimoLance = $lances [count($lances)-1];
$this->maiorValor = $ultimoLance -> getValor();
}
public function getMaiorValor():float{
return $this->maiorValor;
}
};
Arquivo teste-avaliador.php;
<?php
use Alura\Leilao\Model\Lance;
use Alura\Leilao\Model\Leilao;
use Alura\Leilao\Model\Usuario;
use Alura\Leilao\Service\avaliador;
require "vendor/autoload.php";
$leilao = new Leilao(descricao:'fiat 147 0KM');
$maria = new Usuario(nome:"maria");
$joao = new Usuario(nome:"João");
$leilao -> recebeLance(new Lance($joao,valor: 3000 ));
$leilao -> recebeLance(new Lance($maria,valor: 3500 ));
$leiloeiro = new avaliador();
$maiorValor = $leiloeiro->getMaiorValor();
echo $maiorValor;
Mensagem de erro;
PHP Fatal error: Uncaught TypeError: Alura\Leilao\Service\avaliador::getMaiorValor(): Return value must be of type float, null returned in /opt/lampp/htdocs/php/Curso-php-unit/src/Service/avaliador.php:18
Stack trace:
#0 /opt/lampp/htdocs/php/Curso-php-unit/teste-avaliador.php(18): Alura\Leilao\Service\avaliador->getMaiorValor()
#1 {main}
thrown in /opt/lampp/htdocs/php/Curso-php-unit/src/Service/avaliador.php on line 18