Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z $this
tomahawk
post
Post #1





Grupa: Zarejestrowani
Postów: 74
Pomógł: 1
Dołączył: 5.02.2007

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


Witam.

Mam sobie dwie klasy (to tylko przykład):

  1. class Controller{
  2. function index_action(){
  3. Klasa::metoda();
  4. }
  5. }
  6.  
  7. class Klasa{
  8. function metoda(){
  9. print_r($this);
  10. }
  11. }


I teraz jeśli zrobię tak:
  1. $controller=new Controller();
  2. $controller->index_action();

To wyświetla mi obiekt $controller. Czyli zmienna $this jest dostępna w metodzie metoda. Więc co jest grane? Gdzie ta cała teoria o zasięgu zmiennych? Jak zrobić żeby zmienna $this była dostępna tylko i wyłącznie w obrębie obiektu/klasy i nie wędrowała po metodach innych klas.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
tomahawk
post
Post #2





Grupa: Zarejestrowani
Postów: 74
Pomógł: 1
Dołączył: 5.02.2007

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


To jak w końcu? Jak będę wywoływał metodę statyczna jako niestatyczną to będzie poprawnie czy nie?

Tak rozumiem co to znaczy static:) i nie wiem skąd wywnioskowałeś że nadużywam jak nawet w moim przykładzie nie było static ani o tym nie wspomniałem. Chyba odwrotnie chciałeś zasugerować.

A w cpp moim zdanie jest łatwiej ;] Jest przeciążanie funkcji (IMG:style_emoticons/default/smile.gif)

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





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(tomahawk @ 4.08.2010, 12:50:03 ) *
Tak rozumiem co to znaczy static:)

Chyba nie do końca, bo chcesz wywołać metodę w sposób statyczny, a wewnątrz niej chcesz dobrać się do $this. Metody statyczne nie powodują tworzenia obiektu, więc nie ma wewnątrz nich czegoś takiego jak $this.
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.06.2026 - 12:34