Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z klasami :/
shpyo
post
Post #1





Grupa: Zarejestrowani
Postów: 574
Pomógł: 2
Dołączył: 13.04.2004
Skąd: Lublin

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


Witam,
ostatnio męczę sie z następującym problemem...
Napisałem sobie coś w stylu sterownika do bazy mySQL...
Teraz chcę to połączyć z innymi klasami, które będą odpowiadać np. za Newsletter, Użytkowników (dodawanie / edycja / usuwanie itp).

Problem jest w tym jak te klasy ze sobą połączyć, tzn wiem jak, ale jak zrobić dziedziczenie klas.

Główna to oczywiście sterownik do bazy a potem w/w moduły korzystające z niej. Wtedy "drzewko" klas wyglądałoby mniej więcej tak:

Sterownik bazy
|- newsletter
|- urzytkownicy
|- ...
|- co jeszcze

Co wtedy dzieje się z konstruktorami do klas? One nie są konieczne, tak?
Może ma ktoś jakieś pomysły lub wie jak mnie naprostować.

Problem niby błachy, ale nie mogę go rozwiązać, - mam za dużo pytań na które nie mogę znaleść odpowiedz :/

za pomoc dziękuję!

Ten post edytował shpyo 24.02.2005, 23:57:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
bendi
post
Post #2





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Konstruktory zachowuja sie tak samo jak inne metody. Nadpisanie konstruktora powoduje wywolanie tego nadpisanego, i trzeba zadbac o to zeby konstruktor rodzica zostal wywowlany, natomiast jezeli klasa dzedziczaca nie posiada konstruktora to zostanie wywolany konstruktor rodzica, ot cala filozofia. A teraz zdziebko kodu:
  1. <?php
  2. //klasa bazowa
  3. class Base {
  4.   function __construct(){
  5.     echo 'Base';
  6.   }
  7. }
  8.  
  9. class Bla_Base extends Base{
  10. //brak konstruktora zostaje wywolany ten z rodzica
  11. }
  12.  
  13. class Ble_Base extends Base{
  14. //nadpisany konstruktor w klasie dziedziczacej zostanie wywolany tylko ten
  15.    function __construct(){
  16.       echo 'Bla_Base';
  17.    }
  18. }
  19.  
  20. class Bli_Base extends Base{
  21. //rozszerzenie konstruktora rodzica
  22. //nadpisujemy konstruktor a pozniej najpierw wywoluemy w nim konstruktor rodzica
  23.    function __construct(){
  24.       parent::__construct();
  25.       echo 'Bli_Base';
  26.    }
  27. }
  28. ?>


Moze to Ci pomoze.

Ten post edytował bendi 25.02.2005, 11:50:14
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 19:58