etreu Geschrieben 19. Dezember 2005 Geschrieben 19. Dezember 2005 Seit PHP5 gibt es ja Methodenüberladung und Type Hinting. Entweder stehe ich auf dem Schlauch, oder ich muss mir was anderes einfallen lassen. Mein Ansatz: class Foo { public function bar(SomeClass $c) {} public function bar(AnotherBar $c) {} } [/PHP] Ich werde freundlich darauf hingewiesen, dass ich die Methode bar() nicht erneut definieren kann. Also scheint das Type Hinting sowas wie Auto Boxing zu sein. Hat jemand eine Idee, wie ich das gewünschte realisieren kann? Zitieren
geloescht_JesterDay Geschrieben 20. Dezember 2005 Geschrieben 20. Dezember 2005 Seit PHP5 gibt es ja Methodenüberladung und Type Hinting. It's not, however, possible to overload methods as in Java/C++/C# etc. There is a magic method called in PHP 5, __call(), which provides a workaround. http://www.phpbuilder.com/board/showthread.php?s=&postid=10559744&highlight=overload%2A#post10559744 bzw. hier was zum overloading in php: http://www.phpbuilder.com/board/showthread.php?s=&threadid=10278930&highlight=overloading Zitieren
etreu Geschrieben 20. Dezember 2005 Autor Geschrieben 20. Dezember 2005 Mit dieser Lösung bin wieder da, wo ich mit PHP4 auch hin kam. Zitieren
SNOWMAN Geschrieben 21. Dezember 2005 Geschrieben 21. Dezember 2005 Also mir fällt da eigentlich nur folgendes ein: func_num_args() und func_get_args() müsstest halt eine funktion foo machen die an erster Position in der übergabe SomeClass hat und in der zweiten dann AnotherClass Zitieren
geloescht_JesterDay Geschrieben 21. Dezember 2005 Geschrieben 21. Dezember 2005 Mit dieser Lösung bin wieder da, wo ich mit PHP4 auch hin kam. PHP hat nunmal keine festen Varialbentypen. $a = "5"; echo $a; $a = 5; echo $a; [/php] gibt keinerlei Fehler, obwohl du zwei unterschiedlicheTypen ein und derselben Variable zuweisst (und im zweiten Fall sogar eine Typumwandlung bei der Ausgabe indirekt vornimmst). Wie könnte es also gehen, dass 2 Methoden sich nur durch unterschiedliche Variablentypen unterscheiden? Ich denke auch nicht, dass das bei PHP jemals kommen wird (auch wenn ich ansich nichts gegen feste Variablentypen hätte). Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.