Un saluto a tutti.
Mi sto esercitando con le classi, ma da diversi giorni sono impantanato su questo problema che non riesco a risolvere, chiedo un aiuto per capire come procedere e dove sbaglio.
Fino alla verifica dei metri percorsi e ultimo rifornimento mi sembra che funzioni.
Sono bloccato alla funzione statica "visitaMedica", non riesco a prendere in ingresso l'array per estrapolare i podisti che hanno percorso + di 1000m dall'ultima visita medica.
Grazie
Codice PHP:
<?php
class Podista{
public $nome;
public $eta;
public $tot_m;
public $m_ur;
public function __construct($nome, $eta, $tot_m, $m_ur){
$this->nome = $nome;
$this->eta = $eta;
$this->tot_m = $tot_m;
$this->m_ur = $m_ur;
}
public function mUltimoRif(){
return $this->tot_m - $this->m_ur;
}
//Verifica dei podisti che hanno percorso + di $k metri dall'ultima visita medica
public static function visitaMedica($v, $k) {
if(count($v)==0)
return "array vuoto
";
else{
$podista=$v[0];
foreach($v as $n){
if($podista->mUltimoRif($k) > self::visitaMedica($a, $k));
return $podista = $n;
}}}}
$p1 = new Podista("Mario", "32", 5000, 4500);
$p2 = new Podista("Franco", "54", 10000, 8000);
$p3 = new Podista("Gino", "26", 13000, 10000);
echo("-- Ultimo rifornimento:
");
verificaM($p1->mUltimoRif(), 500);
verificaM($p2->mUltimoRif(), 2000);
verificaM($p3->mUltimoRif(), 3000);
echo("-- Visita Medica:
");
$array = array($p1,$p2,$p3);
$array1 = Podista::visitaMedica($array, 1000);
$est = "";
foreach ($array1 as $x){
$est.=$x->nome.",";
}
verifica($est, "Mario,Franco,Gino");
function verificaM($array, $array1) {
echo($array." (giusta: ".$array1.") ".($array==$array1?"SI":"NO")); echo"
";
}
function verifica($array, $array1) {
echo($array." (giusta: ".$array1.") ".($array==$array1?"SI":"NO")); echo"
";
} ?>