dedlfix: verschiedene Methoden gleichen Namens

Beitrag lesen

Tach!

Eine Klasse kann in PHP keine zwei Methoden mit demselben Namen haben.

auch nicht mit unterschiedlichen Parametern? Java kann das.

Auch nicht mit unterschiedlichen Parametern. Diese Art von Methoden-Überladen gibt es in PHP nicht. Es gibt zwar Overloading in PHP, aber: „PHP's interpretation of "overloading" is different than most object oriented languages. Overloading traditionally provides the ability to have multiple methods with the same name but different quantities and types of arguments.“ In PHP heißt Overloading, dass man mit den magischen Methoden __set/__get/__call und Konsorten reagieren kann, wenn nicht vorhandene Methoden oder Eigenschaften angesprochen werden. Das ist auch nur für Klassen verfügbar, nicht für einfache Funktionen.

In PHP kann man jedoch unterschiedliche Signaturen von Funktionen oder Methoden nachbilden. Man kann zum einen Default Values für die Parameter definieren, und beim Aufruf diese Parameter weglassen. Oder man nimmt seit kurzer Zeit Variable-length argument lists. Man kann auch schon viel länger einfach gar keine oder nur wenige Parameter definieren und greift dann auf die tatsächlich übergebenen über die Funktionen func_get_arg()/func_get_args() zu.

dedlfix.