Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Rodzic klasy
Forum PHP.pl > Forum > Przedszkole
rangoo
Witam.

Jeśli mam dwie klasy np. Class1 i Class2, to w przypadku gdy:
  1. class Class1 {
  2. var $c;
  3. function __construct() {
  4. $this->c = new Class2();
  5. }
  6. $Q = new Class1();

to w jaki sposób mogę się odwołać z klasy Class2 do jej rodzica Class1?

@EDIT
nie ma rodzica? wg mnie
  1. $Q->c
jest dzieckiem $Q...

W każdym razie chodzi mi o to, jak z obiektu $Q->c odwołać się do $Q (wiedząc w Class2 że zawsze będzie zagnieżdżona w Class1)
nospor
Tu nie ma żadnego rodzica.
W jednym obiekcie tworzysz inny obiekt - tyle.
#luq
Zawszę możesz przekazywać obiekt rodzica do dziecka:

  1. class Foo
  2. {
  3. public function __construct(){
  4. $this->bar = new Bar($this);
  5. }
  6. }
nospor
Cytat
nie ma rodzica? wg mnie
[PHP] pobierz, plaintext
$Q->c
jest dzieckiem $Q...
Nie myl macierzyństwa z zawieraniem się jednego w drugim. To że mam długopis nie znaczy że jestem jego rodzicem
rangoo
No może wink.gif

Czyli jedynym sposobem jest zrobienie tego w stylu:
  1. class Class1 {
  2. var $c;
  3. var $jakiescos;
  4. function __construct() {
  5. $this->c = new Class2();
  6. $this->c->par = &$this;
  7. }
  8. }
  9. class Class2 {
  10. var $par;
  11. function lolek() {
  12. echo $this->par->jakiescos; // Odwołanie do Class1
  13. }
  14. }
  15. $Q = new Class1();
  16. $Q->lolek();

?
nospor
Tak

1) Skoro lecisz na php5 to już daruj sobie referencje & - php5 domyślnie przekazuje obiekty jako referencje
2) Skoro lecisz na php5 to nie uzywaj już staroci typu VAR. teraz jest public,private, protected
rangoo
O public itp. wiedziałem, tylko chodziło mi o główny zarys, a krócej się pisze ;P Ale o referencji w PHP5 nie wiedziałem więc dzięki wink.gif

Do zamknięcia
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.