Zitat (Holger_N: 28. Juli 2012 - 11:13)
Ist das jetzt ein merkwürdiger Sarkasmus oder der Versuch zu verschleiern, dass du nicht zu wissen scheinst, wovon hier gerade geredet wird?
Es geht nicht darum, was diese Funktion tut, sondern a) wie diese aufgerufen wird und b) was sie intern macht.
Es geht darum, den Nutzer nicht zu verwirren, weil das üble Konsequenzen haben kann, annähernd alle Sprachen machen das richtig, aber PHP hat derbe ausreisser drin.
Das folgende ist Pseudo, sollte aber das Problem veranschaulichen: Nehmen wir an, wir haben eine Variable 'text', die einen String enthält, dann wäre es logisch und berechenbar, das Funktionen so ge-called werden könnten:
text.lower(arg), text.upper(arg), text.capitalize(arg), ...
Das ist nachvollziehbar, da alle Aktionen rund um das Objekt dem gleichen Aufbau entsprechen; ob der Trenner hier jetzt ein '.', '::' oder sonstwas ist, ist egal, hauptsache er ist immer der selbe.
PHP macht da aber einfach mix-n-match, mal text.foo, mal text->bar, etc.
Das ist unlogisch, sinnfrei, Mist und in vielen Fällen, wie schon erwähnt, nichtmal ausreichend dokumentiert. Im Endeffekt heist das, man kann nicht logisch ableiten, wie etwas funktioniert, man muß über alle Spirenzchen bescheid wissen und alles auswendig lernen.
Das aber wiederum widerspricht den Grundprinzipien einer Programmiersprache, die Klarheit, Berechenbarkeit und ordentliche Syntax vorraussetzen.