Witam, mam taki problem. Mam klase MenagerDanych, Nauczyciel oraz Klasa :
class MenagerDanych
{
public static function getWychowawceKlasy
($idKlasy) {
$query = " SELECT nazwisko, imie FROM wychowawcy WHERE idKlasy = '$idKlasy'";
{
$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()
{
if(isset($this->Wychowawca)) {
//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