Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dynamiczne ładowanie klasy
Forum PHP.pl > Forum > PHP
Manwe89
Witam.

Chciałbym uzyskać taki oto efekt:
powiedzmy że mam klasę która się nazywa abc: (dla uproszczenia nadam od razu wartości jej własnościom)
Kod
class abc{
  static private $_firs='mak', $_second='dak';
  
  static getFirst(){
    return self::$_first;
  }

}


chciałbym teraz wywołać statyczną metodę start() klasy która nazywa się tak jak własność _first klasy abc. Tzn:
Kod
[abc::getFirst()]::start();

gdzie [abc::getFirst()] jest nazwą istniejącej klasy.

Czy jest to możliwe?

Powiem więcej. Chciałbym aby to było złożenie postaci:
Kod
[abc::getFirst()]Uses::start();
grn
call-user-func
darko
  1. class abc {
  2. static private $_first='mak', $_second='dak';
  3. static public function getFirst() {
  4. return call_user_func(self::$_first."::start");
  5. }
  6. static public function betterGetFirst($method_name) {
  7. if(class_exists(self::$_first)) {
  8. return call_user_func(self::$_first."::".$method_name);
  9. }
  10. }
  11. }
  12.  
  13. class mak {
  14. static function start() {
  15. echo "startniete!";
  16. }
  17. }
  18. // wywołanie metody start
  19. abc::getFirst();
  20. // wywołanie dodolnej metody (uwaga! sprawdzam tylko czy istnieje klasa, nie sprawdzam czy istnieje metoda, zrób to sam(a))
  21. abc::betterGetFirst("start");
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.