class MenagerDanych { { $query = " SELECT nazwisko, imie FROM wychowawcy WHERE idKlasy = '$idKlasy'"; $result = mysql_query($query) or die('Wystapil blad przy pobieraniu wychowawcow klas z bazy'.mysql_error().'<br />'); { $n = 0; { $obiekt[$n] = new Nauczyciel(); $obiekt[$n]->setNauczyciela($row['imie'], $row['nazwisko']); $n++; } return $obiekt; } } } class Nauczyciel { $protected imie; $protected nazwisko; public function setNauczyciela($imie, $nazwisko) { $this->imie = $imie; $this->nazwisko = $nazwisko } public function showNauczyciela() { return $this->imie.' '.$this->nazwisko; } } class Klasa { $Wychowawca; $idKlasy; public function getWychowawce() { $this->Wychowawca = MenagerDanych::getWychowawceKlasy($this->idKlasy); } public function showWychowawce() { { //pierwszy sposob echo $this->Wychowawca->showNauczyciela(); // nie dziala wyswietla blad : Fatal error: Call to a member function showNauczyciela() on a non-object in.. //drogi sposob - dziala foreach($this->Wychowawca as $ob) { $ob->showNauczyciela();//dziala dobrze } } } }
I moje pytanie brzmi czy idzie zrobić coś z tym pierwszym sposobem? Drogi sposób działa, ale $Wychowawca nie jest tablica obiektów tylko jednym obiektem, więc chyba użycie funkcji foreach nie jest wskazane. Proszę o pomoc, z góry dziękuje
