phpbar.de logo

Mailinglisten-Archive

[php] Overloaden von Funktionen

[php] Overloaden von Funktionen

Hinrich Donner php_(at)_phpcenter.de
Fri, 12 Jul 2002 17:19:43 +0200


Moin,

On Friday 12 July 2002 16:16, Michael Post wrote:

> in Java und C++ kann man Funktionen overloaden.

Ein echtes Überladen gibt es wohl nicht. Du kannst aber

class Foo {
  function myFoo($foo) { echo "foo: $foo"; }
}

class Bar extends Foo {
  function myFoo($foo, $bar) {
    Foo::myFoo($foo);
    echo "<br>Bar: $bar";
  }
}

machen. Dadurch hast Du zumindest Platzhalter und eine Art Vererbung,
wenngleich die explizit eingesetzt werden muss. Es gibt auch Funktionen, mit
denen Du feststellen kannst, ob Methoden existieren, was Dir zumindest eine
Art von abstrakten Klassen erlaubt. Leider besteht keine Möglichkeit,
gleichzeitige Mehrfachevererbung in der Form

class FooBar extends Foo, Bar

zu realisieren. Das Operatoren nicht überladen werden können, brauche ich wohl
nicht zu erwähnen. Interessant aber ist, dass Du den Status der Klasse in der
Session speichern kannst. Im Folgeskript ist dann der ursprüngliche Zustand
der Klasse wieder hergestellt. Dazu muss nur die Klasse deklariert sein,
bevor die Session gestartet wird.

> Gibt es diese, oder so eine ähnliche Möglichkeit auch in php?
> Oder gibt es die Möglichkeit, die Anzahl der übergebenen Argumente und
> Argumentnamen (variablen) herauszufinden?

Nö. Aber ich denke, den bereits dargestellten Hinweis auf die Arrays könnte
Lösungen anbieten.

Hinrich
--
Hinrich Donner


php::bar PHP Wiki   -   Listenarchive