Hallo woodfighter,
das geht natürlich nur, weil es (zwischen Objekten) keine implizite Typumwandlung gibt
Um das mal etwas weiter auszuführen:
Das Problem bei Overloading anhand von Parameter-Typen bei einer weakly typed Sprache ist, dass man sich damit unklare Situationen schafft. Beispiel:
class Foo {
public function bar(float $a) { }
public function bar(string $a) { }
}
$foo = new Foo();
$foo->bar(1);
Welche Methode soll der Dispatcher jetzt auswählen? Beide Typ-Umwandlungen wären möglich.
Klar kann man sich jetzt eine Hierarchie aussuchen, aber das ist prädestiniert für Verwirrung.
LG,
CK