Overloading mit gleicher Signatur

ZodiacXP

Erfahrenes Mitglied
Hört sich verrückt an, ist es aber nicht.

Und zwar soll es eine static Funktion geben ohne Parameter und eine die nicht static ist auch ohne Parameter. Quasi eine für die Klasse und eine für das Objekt.

Jemand eine Idee?

Ich bastel mit __call rum, bringt aber nicht viel bisher.
 
Hi, ich glaube, dass es mit PHP nicht möglich ist, es so wie du willst zu realisieren. Der Grund, warum eine Lösung mittels __call() nicht funktioniert ist folgender:
Man kann in PHP statische Methoden sowohl über
PHP:
KLASSE::METHODE();
aufrufen, als auch über ein konkrestes Objekt der Klasse, also so
PHP:
$OBJEKT = new KLASSE();
$OBJEKT->METHODE();
Es wird in beiden Fällen die selbe Methode aufgerufen und zwar immer statisch.(!)
Es steht dir also in beiden Fällen(!) kein $this zur Verfügung, man kann also auch nicht mittels isset($this), oder ähnlicher Konstrukte, überprüfen, wie die Methode aufgerufen wurde.

Dir bleibt vermutlich nur die Möglichkeit, 2 Funktionen mit unetrschiedlichen Namen zu verwenden. Hoffe das hilft dir weiter.
 
Zuletzt bearbeitet:
Ja. Das hilft weiter und trifft auch leider das was mit viel Experimentieren raus kam.
Gibt garkein Overloading in PHP, sehr Schade. Hoffe das kommt bald.
 
Zurück