Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wywoływanie funkcji dla obiektu
emil_seba
post 29.08.2010, 18:36:03
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.05.2010

Ostrzeżenie: (0%)
-----


Witam, mam taki problem. Mam klase MenagerDanych, Nauczyciel oraz Klasa :
  1. class MenagerDanych
  2. {
  3. public static function getWychowawceKlasy($idKlasy)
  4. {
  5. $query = " SELECT nazwisko, imie FROM wychowawcy WHERE idKlasy = '$idKlasy'";
  6. $result = mysql_query($query) or die('Wystapil blad przy pobieraniu wychowawcow klas z bazy'.mysql_error().'<br />');
  7.  
  8. if(mysql_num_rows($result)>0)
  9. {
  10. $n = 0;
  11. $obiekt = array();
  12. while ($row = mysql_fetch_array($result))
  13. {
  14. $obiekt[$n] = new Nauczyciel();
  15. $obiekt[$n]->setNauczyciela($row['imie'], $row['nazwisko']);
  16. $n++;
  17. }
  18. return $obiekt;
  19. }
  20. }
  21. }
  22.  
  23. class Nauczyciel
  24. {
  25. $protected imie;
  26. $protected nazwisko;
  27.  
  28. public function setNauczyciela($imie, $nazwisko)
  29. {
  30. $this->imie = $imie;
  31. $this->nazwisko = $nazwisko
  32. }
  33. public function showNauczyciela()
  34. {
  35. return $this->imie.' '.$this->nazwisko;
  36. }
  37.  
  38. }
  39.  
  40. class Klasa
  41. {
  42. $Wychowawca;
  43. $idKlasy;
  44.  
  45. public function getWychowawce()
  46. {
  47. $this->Wychowawca = MenagerDanych::getWychowawceKlasy($this->idKlasy);
  48. }
  49. public function showWychowawce()
  50. {
  51. if(isset($this->Wychowawca))
  52. {
  53. //pierwszy sposob
  54. echo $this->Wychowawca->showNauczyciela(); // nie dziala wyswietla blad : Fatal error: Call to a member function showNauczyciela() on a non-object in..
  55. //drogi sposob - dziala
  56. foreach($this->Wychowawca as $ob)
  57. {
  58. $ob->showNauczyciela();//dziala dobrze
  59. }
  60. }
  61. }
  62. }

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 smile.gif
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 08:56