Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [oop] wywolanie jednej klasy z poziomu drugiej
poligon81
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.04.2008

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


Cześć,

Mam jak dotąd dość podstawowe pojęcie o programowaniu obiektowym w PHP, ale staram się go nauczyc efektywnie wykorzystywać, co mam nadzieję, zaprocentuje w przyszłości...

Piszę właśnie stosunkowo prostą aplikację ale nie wiem jak rozwiązać jedną kwestię koncepcyjną


mam taki oto plik index.php

  1. <?php
  2. require_once 'classA.php';
  3. $instancja_klasy_a = new a;
  4.  
  5. require_once 'classB.php';
  6.  
  7.  
  8. require_once 'classC.php';
  9.  
  10. itd...
  11. ?>



I teraz, chciałbym zeby w jakis sposob metody i pola z $instancja_klasy_a były dostępne w obrębie innych klas.
Pytanie teraz czy jest jakas możliwośćbo zrobic cos takiego ?
Czy jesli klasy B, C itp bedą dziedziczyć po klasie A, metody i pola z $instancja_klasy_a będą dostępne z poziomu innych klas?

Oczywiscie moge tworzyć instancje klasy A w konstruktorze albo w metodach klasy B i C ale chciałbym tego uniknąć gdyż klasa A jest dość mocno obciążającą serwer i chciałbym uniknąć wielokrotnego przetwarzania tych samych danych...

Z góry dzięki za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sedziwoj
post
Post #2





Grupa: Zarejestrowani
Postów: 793
Pomógł: 32
Dołączył: 23.11.2006
Skąd: Warszawa

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


Instancję klasy A możesz przekazywać do tych dwóch pozostałych obiektów, a i tak obiekt klasy A będzie jeden.
  1. <?php
  2. class B {
  3.  
  4.  protected $A;
  5.  public function setClassA( A $A ){
  6. $this->A = $A;
  7.  }
  8.  
  9. }
  10. $A = new A();
  11. $B = new B();
  12. $B->setClassA( $A);
  13. $C = new C();
  14. $C->setClassA( $A);
  15. ?>


Dziedziczenie wykorzystujemy kiedy jest logiczne, a nie kiedy jest nam wygodnie.
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: 10.10.2025 - 06:20