PHP - obiektowe PHP - dziedziczenie oraz widoczność
| DZIAŁANIE: | brak działania |
Kod:

Ewentualne Objaśnienia:
Tutaj powrócę jeszcze raz do zagadnienia modyfikatorów zasięgu oraz dziedziczenia w obiektowym PHP 5.
Jak wiadomo mamy 3 modyfikatory zasięgu :
- poblic - domyślny jeżeli nie ustawimy żadnego. Elementy publiczne są
dostępne wszędzie w klasie, poza klasą, w klasach potomnych
- private - elementy prywatne są dostępne tylko i wyłącznie w klasie. Nie
są one dziedziczone więc klasy potomne również nie mają do nich dostępu
- protected - elementy chronione są dostępne jedynie wewnątrz klasy oraz
w klasach potomnych
Powyższy kod jest kodem wręcz okropnym a to dlatego, że posiada masę błędów i
nigdy by nie zadziałał. Jednak obrazuje on zasady dziedziczenia, popatrzmy :
- klasa A jest zadeklarowana poprawnie
- w klasie B jednak widać, że konstruktor chce wykonać 3 funkcje pochodzące z
klasy rodzica. Pierwszy zapis czyli $this->funkcja1(); spowoduje
wyświetlenie błędu ponieważ funkcja1 jest funkcją prywatną klasy A więc nie jest
dostępna dla klas potomnych.
- wywołanie kolejnych dwóch funkcji w konstruktorze klasy potomnej jest
poprawne, bo są to funkcje chroniona i publiczna
- dalej tworzymy obiekt klasy B - $b
- dla tego obiektu próbujemy wywołać nasze 3 funkcje - niestety próba wywołania
funkcji1 oraz funkcji2 są niepoprawne gdyż są to funkcje prywatna oraz
chroniona, jedynie wywołanie funkcji publicznej czyli funkcja3 jest prawidłowe