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%)
-----


Sorry, ale co to jest??

  1. <?php
  2. self::$this->zmienna1*$a;
  3. ?>


(IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

edit:

Jeżeli właściwości funkcji muszą mieć początkowe stałe wartości, nie musisz Ich inicjalizować w konstruktorze.
Nadal źle odwołujesz się do właściwości statycznych wewnątrz klasy... w sumie zapominasz też o dziedziczeniu (test2 będzie miała te same właściwości i metody co test_1, chyba, że zostaną nadpisane).
A to rozwiązanie Twojego problemu pisane z palca:

  1. <?php
  2. class ClassA
  3. {
  4. public static $variable1 = 10;
  5.  
  6. public function operation($a)
  7. {
  8. return self::$variable1 * $a;
  9. }
  10. }
  11.  
  12.  
  13.  
  14. class ClassB extends ClassA
  15. {
  16. public static $variable2 = 9;
  17.  
  18. public function operation()
  19. {
  20. return ClassA::operation(10) + self::$variable2; // 109
  21. }
  22. }
  23. $a = new ClassA();
  24. print $a->operation(10); // 100
  25. $b = new ClassB();
  26. echo $b->operation(); // 109
  27. ?>


Ten post edytował LBO 24.12.2006, 13:54:40
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 13:25