Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] call_user_func_array i uruchamianie klasy ze stringu
szybki
post 9.02.2015, 18:28:13
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.06.2014

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


  1. $className = 'Foo\Bar::test';


Mając taki string chciałbym uruchomić kod:

  1. $x = Foo\Bar;
  2. $x->test;


Znalazłem call_user_func_array, jednak nie można tam uruchomić tego w taiej formie, pierw trzeba podać nazwę klasy, a później jej metodę. Niby dla php 5.3 można podać string jako 1 parametr, ale gdy to robię podaje komunikat

Cytat
Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method


Tylko że test nie jest metodą statyczną.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
ikssde
post 9.02.2015, 18:44:06
Post #2





Grupa: Zarejestrowani
Postów: 217
Pomógł: 40
Dołączył: 20.08.2008

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


W czym problem? Robisz explode na stringu, który dostajesz i masz nazwę klasy i nazwę metody osobno, a potem to uruchamiasz call_user_func_array tak jak mówiłeś.
Go to the top of the page
+Quote Post
buliq
post 9.02.2015, 18:48:15
Post #3





Grupa: Zarejestrowani
Postów: 559
Pomógł: 93
Dołączył: 4.03.2008
Skąd: Olsztyn

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


spróbuj tak:

Jeśli chcesz się odwołać do nie statycznej metody, muszisz w tablicy (jako pierwszy parametr] przekazać instancję klasy i nazwę metody np:


  1. $foor = new Foo\Bar;
  2. call_user_func_array([$foo, "test"], []);


--------------------
KTOŚ TU PACZY???

Kompedium wiedzy
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 - 15:34