Christian Seiler: PHP5

Beitrag lesen

Hallo dedlfix,

Operatorenueberladung

Kann man das bei einer Sprache, die nicht streng typisiert ist, sinnvoll anwenden?

Ja, kann man. Nur, weil eine Sprache nicht typ_sicher_ ist, heißt es nicht, dass sie nicht typisiert ist. Das ist ein Unterschied. Eine Variable hat in PHP *immer* einen festgelegten Datentyp, den Du per get_type() bekommst und falls die Variable vom Typ 'object' ist hat sie *immer* eine festgelegte Klasse, Die Du per get_class() bekommst.

Wie funktioniert denn Operatorüberladung z.B. in C++? Der Compiler schaut sich die Variablen an, die für den Operator gegeben sind, und sucht sich den passensten Operator heraus - bzw. spuckt einen Fehler aus, falls gar kein Operator passt. Allerdings wird das zur Kompilierzeit durchgeführt.

In meinen Augen spräche absolut nichts dagegen, sich zur Laufzeit den passendsten Operator herauszusuchen. Zumindest gibt es für Objekte in PHP5 Type Hinting, d.h. zumindest, um Objekte zu unterscheiden, könnte man das implementieren. Das ginge genauso mit Methoden und Funktionen (und zwar *nicht* über Reflection, sondern direkt) und nicht nur mit Operatoren. Für meine Datumsklasse hätte ich es extrem praktisch gefunden, wenn ich etwas wie $date += $interval_4_days; hätte implementieren können.

Insofern muss ich Christopher hier absolut zustimmen, dass das ein Manko von PHP ist. Es ist in meinen Augen allerdings kein Manko von nicht typsicheren Sprachen.

Viele Grüße,
Christian

--
"I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup