Robert B.: Schreibt PSR 12 vor wie ein Variablenname aus zu sehen hat?

Beitrag lesen

Moin T-Rex,

Absolut! Denkt man an der Stelle nicht weiter ist es ein Gegenargument!

Es kommt wohl darauf an, in welche Richtung man weiterdenkt … 😉

Aber jetzt denken wir mal weiter. Anstatt ein Array zurück zu geben, geben wir ein Objekt zurück.

Ich werde mal konkret: Anstatt ein Array zurückzugeben, gebe ich eine Liste/einen Vektor/… jedenfalls ein Objekt mit Listensemantik zurück.

In meiner Welt muss aus einem $arBezeichnungs ein $objBezeichnung werden. In der Welt von Gunnar (und vielen anderen) muss aber AUCH aus einem $bezeichnungs ein $bezeichnung werden.

In meinem Beispiel änderte sich auch nichts an der Bezeichnung des Inhaltstyps, d.h. der Name bliebe gleich.

Somit müssen BEIDE Welten etwas am Bezeichner verändern.

Nicht zwingend.

Hinzu kommt, dass man den Code ändern muss (sowohl in meiner als auch in allen anderen Welten).

Das kommt auf die API-Kompatibilität an:

Funktioniert ein foreach noch?

In meinem Beispiel: ja.

Oder wurde von einem Objekt auf ein Array geändert? Dann wurden vielleicht vorher Methoden aufgerufen? Oder ist es jetzt ein String und so weiter...

Oder ist ein String ein Array von Zeichen?

Objektorientierung heißt ja nicht umsonst auch "geschlossen für Veränderung".

Nicht geschlossen, sondern gekapselt für kontrollierten Zugriff. Objektorientierung heißt auch APIs und im Idealfall stabile und kompatible APIs.

Wenn man etwas anderes zurück gibt als vorher erwartet wurde, hat man bei weitem andere Probleme als eine Datentypabkürzung.

In einer typisierten Programmiersprache kann das nicht passieren. In allen andern muss man sich sicher sein oder prüfen – unabhängig vom Variablennamen!

Und wenn man den Code an der Stelle sowieso schon umbauen muss, na dann kann man auch den Variablennamen anpassen...

Oder man muss nur an einer Stelle den Typ ändern und der Rest bleibt gleich …

Viele Grüße
Robert