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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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