Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Rodzic klasy
rangoo
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 5
Dołączył: 15.01.2010
Skąd: Skawina k. Krakowa

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


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)

Ten post edytował rangoo 30.04.2011, 11:33:26
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tu nie ma żadnego rodzica.
W jednym obiekcie tworzysz inny obiekt - tyle.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
#luq
post
Post #3





Grupa: Zarejestrowani
Postów: 589
Pomógł: 91
Dołączył: 22.05.2008
Skąd: Gliwice

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


Zawszę możesz przekazywać obiekt rodzica do dziecka:

  1. class Foo
  2. {
  3. public function __construct(){
  4. $this->bar = new Bar($this);
  5. }
  6. }


--------------------
Moja gra - scraby.io
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rangoo
post
Post #5





Grupa: Zarejestrowani
Postów: 40
Pomógł: 5
Dołączył: 15.01.2010
Skąd: Skawina k. Krakowa

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


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();

?

Ten post edytował rangoo 30.04.2011, 11:55:07
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
rangoo
post
Post #7





Grupa: Zarejestrowani
Postów: 40
Pomógł: 5
Dołączył: 15.01.2010
Skąd: Skawina k. Krakowa

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


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

Ten post edytował rangoo 30.04.2011, 11:58:00
Go to the top of the page
+Quote Post

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: 19.08.2025 - 10:39