Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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?

Geschrieben
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

Geschrieben

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

Geschrieben
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).

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...