Sono completamente negata,
ho quasi completato un esercizio , sono riuscita a restiruire un array al metodo con i risultati esatti rischiesti dal problema , pero' nel momento in cui richiamo una funzione con l'array restituito , non ottengo il risultato esatto e che mi porti al completamento dell'ercizio.
Cito parte del testo dell'esercizio :
Vorrei capire dove sbaglio
Grazie a tutti
index.php
classi.php

ho quasi completato un esercizio , sono riuscita a restiruire un array al metodo con i risultati esatti rischiesti dal problema , pero' nel momento in cui richiamo una funzione con l'array restituito , non ottengo il risultato esatto e che mi porti al completamento dell'ercizio.
Cito parte del testo dell'esercizio :
- La classe deve fornire i seguenti metodi:
costruttore a cinque argomenti (nell'ordine specificato nell'elenco precedente) per inizializzare l'oggetto. (Già Creato)
- metodo chilometriDaUltimoControllo() che restituisce il numero di chilometri percorsi dall'ultimo tagliando effettuato dall'auto x su cui il metodo viene invocato. (Già Creato)
-
metodo autoDaControllare($v, $c) che prende in ingresso un array di auto $v ed un numero $c e restituisce un array contenente tutte le auto contenute nell'array $v che hanno percorso più di $c chilometri dall'ultimo tagliando effettuato. (Già Creato nella classe ma nell'index.php non mi funziona la function confrontaInt )
- metodo chilometriDaUltimoControllo() che restituisce il numero di chilometri percorsi dall'ultimo tagliando effettuato dall'auto x su cui il metodo viene invocato. (Già Creato)
Vorrei capire dove sbaglio

index.php
PHP:
<?php
include ("classi.php");
$a1 = new Auto("Fiat", "Punto", "A", 20000, 18000);
$a2 = new Auto("Fiat", "Cinquecento", "B", 4000, 3200);
$a3 = new Auto("Peugeot", "207", "C", 55000, 40000);
$a4 = new Auto("Volkswagen", "Golf", "D", 60000, 38000);
$a5 = new Auto("Renault", "Clio", "E", 80000, 70000);
$a6 = new Auto("Ford", "Focus", "F", 75000, 50000);
echo("-- Test costruttore e metodo chilometriDaUltimoControllo:<br>");
confrontaInt($a1->chilometriDaUltimoControllo(), 2000);
confrontaInt($a2->chilometriDaUltimoControllo(), 800);
confrontaInt($a3->chilometriDaUltimoControllo(), 15000);
confrontaInt($a4->chilometriDaUltimoControllo(), 22000);
echo("-- Test metodo autoDaControllare:<br>");
$a = array($a1,$a2,$a3,$a4,$a5,$a6);
$b = Auto::autoDaControllare($a, 10000);
$ris = "";
foreach ($b as $x){
$ris.=$x->targa.",";
}
confronta($ris, "C,D,F,");
function confrontaInt($a, $b) {
echo($a." (corretta: ".$b.") ".($a==$b?"OK":"ERR"));
echo"<br>"; }
function confronta($a, $b) {
echo($a." (corretta: ".$b.") ".($a==$b?"OK":"ERR"));
echo"<br>"; }
?>
classi.php
PHP:
<?php
class Auto{
public $Marca;
public $Modello;
public $Targa;
public $KmTotaliPercorsi;
public $KmPercorsiUltimoTagliano;
public function __construct ($marca, $modello,$targa,$kmtotalipecorsi,$kmpercorsiultimotagliando){
$this->Marca=$marca;
$this->Modello=$modello;
$this->Targa=$targa;
$this->KmTotaliPercorsi=$kmtotalipecorsi;
$this->KmPercorsiUltimoTagliano=$kmpercorsiultimotagliando;
}
/*
metodo chilometriDaUltimoControllo() che restituisce il numero di chilometri percorsi dall'ultimo tagliando effettuato dall'auto x su cui il metodo viene invocato.
*/
public function chilometriDaUltimoControllo(){
$Km_Ultimo_Tagliando = $this->KmPercorsiUltimoTagliano;
return $Km_Ultimo_Tagliando;
}
/*
metodo autoDaControllare($v, $c) che prende in ingresso un array di auto $v ed un numero $c e restituisce un array contenente tutte le auto contenute nell'array $v che hanno percorso più di $c chilometri dall'ultimo tagliando effettuato.
*/
public function autoDaControllare($v, $c){
$t = array();
$i=0;
foreach ($v AS $key1 => $val1)
foreach ($val1 AS $key2 => $val2)
if ($key2 == 'Targa') {
$t[$i] = $val2;
} elseif ($key2=='KmPercorsiUltimoTagliano') {
if ($val2 > $c) {
//$k[$i] = $val2;
$i = $i + 1;
}
}
return $t;
}
}
?>