Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dziedziczenie w kodzie
Forum PHP.pl > Forum > PHP > Object-oriented programming
misiek172
Witam.

Normalne dziedziczenie wygląda tak:

class xxx estends bbb
{

}

a moje pytanie brzmy czy można dołączyć klase do dziedziczenia w środku klasy czyli

class xxx
{

i tu w kodzie gdzieś dziedziczyć klase... da się tak?

}

Z góry dziękuje i pozdrawiam, Łukasz.
sf
Nie. A co chcesz osiągnąć przez to?
misiek172
bo chcę napisać kontroler, który w zależności od wysłanego polecenia do niego za pomocą AJAXa bedzie ładował odpowienią klase.
splatch
AbstractFactory + Strategy ewentualnie zamiast tych 2 jeden - Factory Method
dr_bonzo
Jak wyzej, nie musisz dziedziczyc, tylko utworzyc obiekt klasy na podstawie wartosci zmiennej, w skrocie:

http://..../?akcja=newsy
  1. <?php
  2. $kontroler = new $akcja;
  3. $kontroler->uruchom();
  4. ?>

itp.
misiek172
jeśli chodzi o Factory Method i te inne nie zabardz rozumiem o co chodzi.

Można utworzyć obiekt klasy w klasie?? Czy można includować klase do klasy i utworzyć w niej obiekt?
Łukasz O.
  1. <?php
  2. class A extends B{
  3. public function getMethodFromA(){
  4. return 'metoda z klasy A<br/>';
  5. }
  6. }
  7. class B{
  8. public function getA(){
  9. return new A;
  10. }
  11. public function getMethodFromB(){
  12. return 'metoda z klasy B<br/>';
  13. }
  14. }
  15. $d=new B;
  16. print $d->getA()->getMethodFromA();
  17. print $d->getA()->getMethodFromB();
  18. ?>
w ten sposób możesz zwrócić obiekt, który zawiera wszystkie metody obu klas - ale to nie jest to o czym Ty na początku myślałeś - to takie lekkie obejście "na około"
misiek172
ok tylko ze ja mam reszte klas w innych plikach :/
mike
No i?
O include() i innych takich słyszał ?
misiek172
mike_mech nie o to chodzi nieważne tongue.gif
Fipaj
Ważne. winksmiley.jpg
Ponieważ pewnie będziesz je includował, polecam zapoznanie się z __autoload(). To tak na czuja, żeby ci kodowanie ułatwić. tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.