Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dostęp do metody z innej klasy
acztery
post
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


witam,

mam mały klopot nie

mamy naprzykład dwie różne klasy które korzystaja z konstruktora.

W klasie A nie korzystam z metod z innych klas

ale w klasie B korzystam z medoty z kasy A. Jak nie mialem konstruktora odwoływałem sie tak KlasaA::medotaKlasyA().

Teraz nie moge tak zrobic bo konstruktor nie zostanie wywołany. jak to się robi tak aby było dobrze napisane

ja mam 1 pomysl

  1. <?php
  2. $klasaA = new A();
  3. $KlasaA->metoda();
  4. ?>


ale nie wiem czy tak mozna i czy to jest zgodne z Obiekotwym PHP5, moze jakies pomysły

Ten post edytował acztery 23.12.2006, 20:24:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(koala @ 24.12.2006, 01:29:09 ) *
  1. <?php
  2. class Doc extends Doc
  3. ?>

Klasa nie może rozszerzać sama siebie


O to pytałem się już wcześniej (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat(koala @ 24.12.2006, 01:29:09 ) *
  1. <?php
  2. class Lang extends Doc
  3. ?>


Klasa Lang rozszerza klasę Doc czyli konstruktor klasy Lang nadpisuje konstruktor klasy Doc czyli to co chcesz zrobić w konstruktorze klasy Doc się nie wykona.


Ale przecież Model, który on używa w klasie Lang musi być inny, niż w klasie Doc. Nie widzę w tym nic błędnego.

Cytat(acztery @ 24.12.2006, 01:09:03 ) *
  1. <?php
  2. class klasaA extends klasaB 
  3. {
  4. ....
  5. // tu wywolanie statycznej metody z klasyB
  6. klasaB::metoda();
  7. ....
  8. }
  9. ?>

co ja robie dalej zle moze dasz mi namiar na ciekawe art. LBO ?

możesz też
  1. <?php
  2. self::metoda(); // KlasaA odziedziczyła klasaB::metoda()
  3. ?>

Natomiast jeżeli nadpisałeś klasaB::metoda(), tworząć klasaA::metoda() - wtedy wewnątrz klasy odwołujesz się w ten sposób:
  1. <?php
  2. parent::metoda();
  3. ?>


Ten post edytował LBO 24.12.2006, 02:40:04
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: 27.12.2025 - 14:24