Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] call_user_func_array i uruchamianie klasy ze stringu
Forum PHP.pl > Forum > Przedszkole
szybki
  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ą.
ikssde
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ś.
buliq
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"], []);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.