Mailinglisten-Archive |
Hi Alex, > Hallo Jochen, > > > Folgendes habe ich probiert: > > $call="var_tools::testfunc"; > > $call(); > > > > und: > > $call="testfunc"; > > var_tools::testfunc(); > > > > Beides ohne Erfolg.... > > > das ist mir klar. Warum? Ein Aufruf à la: var_tools::testfunc() funktioiert ja: (Sorry, ein Fehler meinerseits, ich meinte natürlich var_tools::$call() geht nicht..... > Du kannst nicht einfach hingehen und Klassenmethoden aufrufen. Doch das geht: In der Form klassenname::methode(); > Methoden gehören immer einem Objekt, welches nun selbst eine > existierende Instanz einer Klasse ist. Klar, wenn man ein objekt initialisert hat schon, aber nicht prinzipiell. > > Meiner Meinung nach macht das auch gar keinen Sinn. > Schließlich sind Methoden dazu da, ein *Object* eine Aktion > ausführen zu lassen - keine *Klasse*. > Ja, das stimmt schon, aber für eine einfache Sache wir ein paar einfache Tools z.B. zur Uri oder Variablenmanipulationen sind schreibweisen wie var_tools::kuerzen(); sehr praktisch und auch übersichtlich (meine: gut lesbar). Eine Instanz zu erstellen, halte ich hier nicht unbedingt für notwendig. Ist natürlich nicht die klassische Anwendung einer Klasse. Habe mich aber jetzt für folgende Variante entschieden und das geht: $call=new archiv_construct; #method is called $pagetext=call_user_method ($request_info[type],$call); Sind wir also doch wieder bei der Instanzierung in diesem Fall angelegt. Grüße Jochen
php::bar PHP Wiki - Listenarchive