dedlfix: 1: Instanzvariablen oder Funktionsparameter? 2: Überladene Funktionen?

Beitrag lesen

Tach!

Frage 1: Kann man mit Funktionsparameter und Instranzvariablen einer Klass "gleichberechtigt" arbeiten, mit außnahme vom Scope?

Nein, beide haben ihren eigenen Einsatzzweck.

Wann ist es sinnvoll eine Instanzvariable zu erzeugen und wann ein zu übergebenden Funktionsparameter?

Instanzvariablen gehören dem Objekt und haben eine Funktion innerhalb des Objekts. Funktionsparameter, auch wenn es Methoden betrifft, haben den Zweck, Werte an die Funktion/Methode zu übergeben. Sie haben also eine Funktion nur für die Funktion/Methode.

Hintergrund: Mein Problem war, das ich alle Daten die ich benötige in Instanzvariabeln der Klasse ausgelagert habe, um damit in der Klasse arbeiten zu können.

Wenn ich Holz hacken möchte, benötige ich eine Axt. Die Axt ist kein Teil von mir sondern nur ein Werkzeug, das ich für die Funktion Holzhacken benötige. Also ist sie keine Instanzvariable sondern ein Funktionsparameter. Eigenschaften, die mich selbst beschreiben, sind hingegen Instanzvariablen.

Blöd nur das die Instanzvariabeln in einer funktion einen ellen langen Rattenschwanz nach sich ziehen $this->variablennme.

Das darf kein Parameter fürs Programmieren sein. Du solltest ncht für den Computer oder deine eigene Arbeitserleichterung schreiben, sondern so, dass ein anderer das Programm leicht lesen und verstehen kann. Zu "ein anderer" zählst auch du selbst in drei Wochen.

Parameter die nur aus buchstaben bestehen z.B. $o und vom Kommentar-Header der Funktion gut kommentiert, haben das problem nicht.

Parameter, die eine sprechenden Namen haben, brauchen keine Dokumentation desselben. Sie brauchen dann nur eine Dokumentation zu ihrem Sinn und was für Werte sie entgegennehmen.

Frage 2: kann man funktionen aufblähen mit viele Funktionsparametern und Instanzvariablen oder sollte man das der übersichtlichkeithalber in vielen kleine Funktionen abarbeiten

Ich denke, du weißt die Antwort schon selbst, denn du hast deine Zweifel ja schon dadurch ausgedrückt, dass du einen zweiten Teil in der Frage formuliert hast, indem auch eine Begründung für das Vorgehen steckt. Gegenfrage: Was liest sich einfacher, Bandwurmsätze oder mehrere kleinere?

dedlfix.