tyyppi = $tyyppi; } // destruktori function __destruct() { $this->tyyppi = NULL; $this->lista_alkiot = NULL; } // metodi palauttaa listan tyypin public function anna_tyyppi() { return $this->tyyppi; } // metodi lisää alkion, jos sitä ei ollut olemassa public function lisaa_alkio($alkio) { if(!$this->onko_olemassa($alkio->anna_arvo())) { array_push($this->lista_alkiot, $alkio); return true; } return false; } // metodi poistaa alkion taulukosta public function poista_alkio($arvo) { foreach($this->lista_alkiot as $indeksi => $alkio) { if($alkio->anna_arvo() == $arvo) { unset($this->lista_alkiot[$indeksi]); return true; } } return false; } // metodi päivittää parametrina tuodun alkion // myös uusi arvo tuodaan parametrina // paivitys voi olla myös lisäys // ennen lisäystä/päivitystä tarkistetaan ettei löydy saman nimistä ennalta // lisays tehdään silloin, jos paivitettävää alkiota ei löydy public function paivita_alkio($paivitettava,$uusi_arvo) { if($this->onko_olemassa($uusi_arvo)) { return false; } foreach($this->lista_alkiot as $indeksi => $alkio) { if($alkio->anna_arvo() == $paivitettava) { $this->lista_alkiot[$indeksi]->aseta_arvo($uusi_arvo); return true; } } $uusi_alkio = new lista_alkio($uusi_arvo); return $this->lisaa_alkio($uusi_alkio); } // metodi muuttaa listan tyyppiä public function muuta_tyyppi($uusi_arvo) { $this->tyyppi = $uusi_arvo; } // metodi tarkistaa alkion olemassaolon public function onko_olemassa($alkion_arvo) { foreach($this->lista_alkiot as $alkio) { if($alkio->anna_arvo() == $alkion_arvo) return true; } return false; } // metodi palauttaa taulukkona kaikkien lista-alkioiden sisällöt public function anna_arvot() { $arvotaulukko = array(); foreach($this->lista_alkiot as $alkio) { $arvo = $alkio->anna_arvo(); array_push($arvotaulukko,$arvo); } return $arvotaulukko; } // metodi tulostaa listan sisällön public function tulosta_lista() { echo "<$this->tyyppi>\n"; foreach($this->lista_alkiot as $alkio) { $alkio->tulosta(); echo "\n"; } echo "$this->tyyppi>\n"; } } // luokka lista-alkiolle, sisältää lista-alkion sisällön class lista_alkio { // attribuutit private $arvo; // konstruktori function __construct($arvo) { $this->arvo = $arvo; } // destruktori function __destruct() { $this->arvo = NULL; } // palauttaa lista-alkion sisällön public function anna_arvo() { return $this->arvo; } // asettaa lista-alkiolle sisällön public function aseta_arvo($arvo) { $this->arvo = $arvo; } // tulostaa lista-alkion public function tulosta() { echo "