Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Operator rozróżnienia zasięgu (::) i zmienne zmienne
erix
post 2.10.2006, 21:25:48
Post #1





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Sytuacja:
  1. <?php
  2. class klasa{
  3. function metoda(){
  4. //operacje
  5. }
  6.  
  7. function metoda2(){
  8. $nazwa = 'metoda';
  9. $this->{$nazwa};
  10. }
  11. }
  12. ?>

Moje pytanie: w jaki sposób odwołać się do którejś z metod bez tworzenia nowej instancji klasy via zmienne zmienne?

Zły kod:
  1. <?php
  2. $nazwa = 'klasa';
  3. {$nazwa}::metoda();
  4. ?>


Jak to ugryźć?


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
siemakuba
post 2.10.2006, 21:33:29
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


call_user_func" title="Zobacz w manualu php" target="_manual

1. masz instancję klasy i chcesz wykonać metodę z tej klasy
  1. <?php
  2. $class = new SampleClass;
  3. $method = 'SampleMethod';
  4.  
  5. call_user_func(array($class, $method));
  6. ?>


2. nie masz instancji klasy i chcesz wykonać metodę statycznie
  1. <?php
  2. $class = 'SampleClass';
  3. $method = 'SampleMethod';
  4.  
  5. call_user_func(array($class, $method));
  6. ?>


pozdr.
Go to the top of the page
+Quote Post
erix
post 2.10.2006, 21:39:38
Post #3





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Zabrakło mi wyrazu ;P

Chodziło mi o statyczne smile.gif
Tylko, co będzie szybsze/lepsze? call_user_func" title="Zobacz w manualu php" target="_manual, czy kombinowanie przez eval" title="Zobacz w manualu php" target="_manual?


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
siemakuba
post 2.10.2006, 21:41:42
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Cytat
Tylko, co będzie szybsze/lepsze?

Zdecydowanie call_user_func" title="Zobacz w manualu php" target="_manual, do tego przecież służy :)

pozdr.
Go to the top of the page
+Quote Post
erix
post 2.10.2006, 21:47:43
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Dzięki, siemakuba!
Dokładnie o to mi chodziło.


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

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 17:13