Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> deklaracja obiektu jednej klasy wewnątrz drugiej
Everizon
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.10.2008

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


Witam
prosty i wydawałoby się oczywisty przykład ale nie działa...
Kod
     class C_osoba {
         var $imie;
         var $nazwisko;
         function pokaz(){
             echo $imie.' - '.$nazwisko;
         }
     }
    
     class C_zamowienie {
         var $zamowienie_uid;
         var $przedmiot_id;
         var $osoba= new C_osoba;
     }


chcę tak zrobić by po deklaracji w kodzie:
Kod
   $zamowienie=new C_zamowienie;

używać:
Kod
   $zamowienie->przedmiot_id=666;
   $zamowienie->osoba->imie="Nefretete";

niestety otrzymuję komunikat:
Parse error: syntax error, unexpected T_NEW in H:\AppServ\www\klasa.php on line 16
gdzie linia 16 to linia z klasy C_zamowienie o teści:
Kod
var $osoba= new C_osoba;

Dlaczego nie mogę zadeklarować obiektu klasy C_osoba wewnątrz innej klasy jak zwykłej zmiennej ?
Jeżeli nie można to jak mogę to osiągnąć ? używam złej składni ?
Zaznaczam że nie chcę dziedziczyć klasy C_osoba w klasie C_zamowienie ponieważ potrzebuję jeszcze zadeklarować inne obiekty innych klas (np. C_przedmiot, C_reklamacje) a dziedziczenie wielokrotne w php nie działa.
Dlatego docelowo wyglądałoby tak: (ale nie działa jak w c++)
Kod
class C_zamowienie {
     ...
     var $osoba= new C_osoba;
     var $przedmiot= new C_przedmiot;
     var $reklamacje= new C_reklamacje;
     ...
     }

Proszę o pomoc.

Ten post edytował Everizon 11.06.2009, 11:53:12
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


OOP w PHP jest dosyć ograniczone. Swoją drogą nie korzystaj z reliktu jakim jest "var".
  1. <?php
  2.  
  3. class Osoba{
  4.  private $imie;
  5.  private $nazwisko;
  6.  
  7.  public function pokaz(){
  8.    return $this->imie . ' ' . $this->nazwisko;
  9.  }
  10. }
  11.  
  12. class Zamowienie{
  13.  private $osoba;
  14.  
  15.  public function __construct(){
  16.    $this->osoba = new Osoba();
  17.  }
  18. }
  19. ?>
http://pl.php.net/manual/pl/language.oop5.php
Go to the top of the page
+Quote Post
Everizon
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.10.2008

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


Proste i genialne.
W dodatku ładniej wygląda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Dziękuję bardzo i pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 24.08.2025 - 23:14