Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] uruchamianie funkcji o nazwie przekazanej w zmienej
Forum PHP.pl > Forum > Przedszkole
rudolf35
próbuję w konstruktorze klasy uruchomić funkcję przekazaną w zmiennej. Np w zmiennej $funkcja jest nazwa funkcji "test" i chcę ją uruchomić w taki sposób: $funkcja(); Ale wyrzuca mi błąd:
Cytat
Fatal error: Call to undefined function test()

Chociarz funkcja napewno jest zadeklarowana w klasie... Jakieś pomysły?
mortus
call_user_func powinno zadziałać.
darko
I w czym problem?
  1. function test() {
  2. echo "a test() has been called";
  3. }
  4. class A {
  5. function __construct($fname) {
  6. call_user_func($fname);
  7. echo "a constructor of class A has been called";
  8. }
  9. }
  10. $a = new A("test");

Zerknij do manuala

// edit
Jeśli funkcja jest zdefiniowana w klasie (czyli jest metodą klasy B ), to:

  1. class B {
  2.  
  3. function __construct($fname) {
  4. $this->$fname();
  5. echo "a constructor of class A has been called";
  6. }
  7.  
  8. public function test() {
  9. echo "B::test()";
  10. }
  11. }
  12. $b = new B("test");
mls
Jeśli jest to funkcja wewnątrz klasy, to można tak:
  1. $nazwafunkcji = 'funkcja';
  2. $this->$nazwafunkcji();

lub
  1. $nazwafunkcji = 'funkcja';
  2. call_user_func(array($this, $nazwafunkcji));
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.