Não estou conseguindo trabalhar pelo terminal. E quando utilizo o Xampp estou com este erro:
Notice: Undefined variable: leilao in C:\xampp\htdocs\inicial\Avaliador.php on line 10
Fatal error: Call to a member function getLances() on null in C:\xampp\htdocs\inicial\Avaliador.php on line 10
Arquivos:
Avaliador.php
<?php
class Avaliador {
private $maiorValor = -INF;
private $menorValor = INF;
public function avalia() {
foreach ($leilao->getLances() as $lance) {
if ($lance->getValor() > $this->maiorDeTodos) {
$tihs->maiorDeTodos = $lance->getValor();
}elseif ($lance->getValor() < $this->menorDeTodos) {
$this->menorDeTodos = $lance->getValor();
}
}
}
public function getMaiorLance() {
return $this->maiorValor;
}
public function getMenorLance(){
return $this->menorValor;
}
}
?>
AvaliadorTest.php
<?php
require_once 'Usuario.php';
require_once 'Lance.php';
require_once 'Avaliador.php';
require_once 'Leilao.php';
class AvaliadorTest {
public function test() {
$leilao = new Leilao("PlayStation4");
$renan = new Usuario("Renan");
$caio = new Usuario("Caio");
$felipe = new Usuario("Felipe");
$leilao->propoe(new Lance($renan, 400));
$leilao->propoe(new Lance($caio, 350));
$leilao->propoe(new Lance($felipe, 250));
$leiloeiro = new Avaliador();
$leiloeiro->avalia($leilao);
$maiorEsperado = 400;
$menorEsperado = 250;
var_dump($leiloeiro->getMaiorLance() == $maiorEsperado);
var_dump($leiloeiro->getMenorLance() == $menorEsperado);
}
}
?>
Index.php
<?php
require_once 'AvaliadorTest.php';
$test = new AvaliadorTest();
$test->test();
?>
Lance.php
<?php
class Lance {
private $usuario;
private $valor;
function __construct(Usuario $usuario,$valor) {
$this->usuario = $usuario;
$this->valor = $valor;
}
public function getUsuario() {
return $this->usuario;
}
public function getValor() {
return $this->valor;
}
}
?>
Leilao.php
<?php
class Leilao {
private $descricao;
private $lances;
function __construct($descricao) {
$this->descricao = $descricao;
$this->lances = array();
}
public function propoe(Lance $lance) {
$this->lances[] = $lance;
}
public function getDescricao() {
return $this->descricao;
}
public function getLances() {
return $this->lances;
}
}
?>
Usuario.php
<?php
class Usuario {
private $id;
private $nome;
function __construct($nome,$id = null) {
$this->nome = $nome;
$this->id = $id;
}
public function getId() {
return $this->id;
}
public function getNome() {
return $this->nome;
}
}
?>