phpbar.de logo

Mailinglisten-Archive

AW: [php] Aufruf einer Klasse mit einer Variablen als Name

AW: [php] Aufruf einer Klasse mit einer Variablen als Name

Jochen Metzger php_(at)_phpcenter.de
Wed, 16 Jan 2002 09:47:19 +0100


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