Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obiekty - wskaźnik "this", Na co komu dziś
-Gość_TakiTam-
post
Post #1





Goście







Probuje podlapac o co chodzi w programowaniu obiektowym i mam jedno zasadnicze pytanie, ktore rodzi sie w mojej glowie za kazdym razem gdy rozpoczynam kurs.
1. Po co jest wskaznik "this"?
2. Co on daje,do czego sluzy?.
3. Dlaczego nie mozna sie bez niego obejsc?

Pozdr
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Zbłąkany
post
Post #2


Administrator serwera


Grupa: Developerzy
Postów: 521
Pomógł: 13
Dołączył: 2.04.2004
Skąd: 52°24' N 16°56' E

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


Napisze najprosciej jak potrafie: za pomoca zmiennej $this mozesz sie odwolac z kazdej funkcji do innej funkcji a takze z kazdej funkcji do atrybutu klasy. Oczywiscie mozna z niego nie korzystac ale to utrudnia troche zadanie bo trzeba wtedy wiekszosc rzeczy wstawiac do stalych albo zwracac tak aby inne funkcje mialy dostep do tych danych(zmiennych, badz funkcji) (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-Gość_TakiTam-
post
Post #3





Goście







No dobra. Mam zatem cos takiego:

  1. <?php
  2.  
  3. class nazwaklasy
  4. {
  5. var $atrybut;
  6. function operacja($param)
  7. {
  8. $this->atrybut = $param
  9. echo $this->atrybut;
  10. }
  11. }
  12.  
  13. ?>


i mam nastepuujaca prosbe: czy ktos moglby mi krok po kroku wytlumaczyc co w ktorej linijce robi skrypt?

Ja rozumuje tak:
1. Tworzy klase "nazwaklasy".
2. Zadeklarowuje zmienna $atrybut (nie rozumiem dlaczego zadeklarowuje zmienna. Co to daje? Co by sie stalo bez zadeklarowania zmiennej w klasie?).
3. Tworzy operacje (funkcje) o parametrze $param , ktora...
... no wlasnie - co w tym miejscu sie dzieje, co tak naprawde wykonuje skrypt w dwoch kolejnych (ostatnich) etapach (miedzy klamerkami operacji {})?

Dzieks
Go to the top of the page
+Quote Post
silent
post
Post #4





Grupa: Zarejestrowani
Postów: 127
Pomógł: 0
Dołączył: 18.08.2004
Skąd: Jastrzębie Zdrój

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


Posłużę się takim przykładem:
  1. <?php
  2. class nazwaklasy
  3. {
  4. var $atrybut; // deklaracja zmiennej
  5. function ustawAtrybut($param)
  6. {
  7. $this->atrybut = $param; // przypisanie atrybutowi wartości parametru
  8. }
  9.  
  10. function wypiszAtrybut()
  11. {
  12. echo $this->atrybut; // wypisanie wartości atrybutu
  13. }
  14. }
  15.  
  16. // tworzymy sobie 2 obiekty klasy nazwaklasy
  17. $obiekt1=new nazwaklasy;
  18. $obiekt2=new nazwaklasy;
  19.  
  20. // przypisanie obiektom 2 różnych wartości atrybutu
  21. $obiekt1->ustawAtrybut('asdf');
  22. $obiekt2->ustawAtrybut('qwer');
  23.  
  24. $obiekt1->wypiszAtrybut(); // wypisze asdf
  25. $obiekt2->wypiszAtrybut(); // wypisze qwer
  26.  
  27. ?>


Deklaracje zmiennych w klasie robi się dla przejrzystości kodu. Patrzysz na początek klasy i wiesz jakie ma atrybuty i jakich typów, nie musisz ich szukać w poszczególnych metodach.
$this oznacza jakby odwołanie się do samego siebie, czyli jeśli masz obiekt jakiejś klasy który nazywa się $obiekt1 to $this jest tożsame z $obiekt1 (dla tego obiektu).
Nieźle zamotałem, ciekawe ile w tym racji - ja to tak rozumiem, a z obiektówką jestem po tyłach niestety. Tak więc proszę - poprawcie mnie jeśli się mylę.
Go to the top of the page
+Quote Post
pillot
post
Post #5





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 9.05.2004
Skąd: Puszów

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


hmm... http://forum.php.pl/index.php?showtopic=23171
http://php.pl/index.php/phppl/artyku_y/apl...towe_w_praktyce

a jeśli chcesz od podstaw to http://www.merlin.com.pl/
Go to the top of the page
+Quote Post

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: 22.08.2025 - 11:57