ďťż

[php] klasy uzaleznione od siebie

       

Podstrony


telcocafe

Mam problem i nie mam pojęcia jak do tego podejść.

Mam powiedzmy 3 klasy:


class klasa1 {
...
}

class klasa2 {
...
}

class klasa3 {
...
}


Problem w tym, że mają być od siebie 'uzależnione' tzn. że klasa 2 korzysta z klasy 3, pierwsza z 3 itp.
Chodzi o to że kiedy klasa 2 korzysta powiedzmy z klasy 1, jest ok, ale kiedy miałaby korzystać z 3 to nie da rady, bo jest jeszcze nie zadeklarowana.

Proszę o wskazówki i możliwe rozwiązania ;)



Umieść je w osobnych plikach i zastosuj funkcję include (lub include_once, require i require_once).
Użytkownik Kozack edytował ten post 04 marzec 2009, 19:48
nie rozumiem twojej wypowiedzi?
klasa 2 korzysta z 3 i co da to include?

Czego tutaj nie rozumiesz? Każdą klasę umieszczasz w osobnym pliku. Jeśli druga klasa korzysta z trzeciej, to na początku dołączasz plik z odpowiednią definicją:

Plik "klasa1.php":
class klasa1 { };
Plik "klasa2.php":
include('klasa3.php'); class klasa2 { };
Plik "klasa3.php":
class klasa3 { };



dobra ale tych klas moze być bardzo dużo i mają tworzyc różnorodne powiazania miedzy sobą
dopiero poznaję programowanie obiektowe i nie mam pojęcia jak mam do tego podejść
Użytkownik PiKey edytował ten post 04 marzec 2009, 22:18
Proponuje zrobić to jakoś inaczej.. Np jedną klasę nadrzędną w której by były te powiązania a reszta, to klasy dzieci żyjące własnym życiem, ale korzystające z klasy rodzica i tych wszystkich w niej rzeczy wspólnych.

Proponuję rozwiązać to http://pl.php.net/ma...p5.abstract.php tak, albo http://pl.php.net/ma....interfaces.php tak ;)

function __autoload($classname){ if (file_exists('class/' . $classname . '.class.php')){ include_once 'class/' . $classname . '.class.php'; } }
Funkcję tę deklarujesz tylko raz - w nadrzędnym pliku. Nie musisz już w plikach klasy używać include.
Więcej: http://pl.php.net/autoload

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.