dedlfix: Optionale Argumente

Beitrag lesen

Hi!

Den Farbwert vom Text zu unterscheiden wäre kein Problem, wenn ich den Farbwert mit dem # anfordere, was für Farbwerte natürlich wäre, und das dann filtere.

Das war nur ein Beispiel. Wenn du da mal in diese Richtung weiterdenkst, kommst du vielleicht auf die Idee, dass die Fontgröße nicht nur ein Zahlenwert sondern auch noch mit Einheit angegeben werden können soll, also 17pt, 21px, 2em, etc. Oder du willst noch andere Werte hinzufügen, die sich vom Typ oder Inhalt her nicht von den bisherigen unterscheiden lassen.

Andererseits hast du vielleicht recht mit dem Ratespiel. Für den User möchte ich es nur so komfortabel wie möglich machen.

Such einen Kompromiss! Der Anwender will es nicht nur vermeintlich einfach haben, es soll auch noch robust sein. In Python wäre das Problem schön lösbar, da kannst du benannte Parameter verwenden, und diese beliebig hinter den positionierten anordnen.

fubar(pos1, pos2, pos3, key1 = foo, key3 = baz, key2 = bar)

In PHP allerdings hast du so eine direkte Zuweisungsmöglichkeit nicht. Da kannst du nur positionierte Argumente übergeben.

Die Entscheidung nun, ob du statt der positionierten Werte lieber ein Array entgegennimmst, solltest du gut gegeneinander abwägen. Die Syntax, um ein Array zu erstellen, ist nicht unbedingt einfacher als Argumente zu positionieren und "null"s einzufügen. Und letztlich sollte auch ein Anfänger bereits so viel gelernt haben, dass er weiß, wie eine Funktion aufzurufen ist, und dass die Reihenfolge der Parameter von Bedeutung ist.

Meine Empfehlung: Mach es dir so (pflege)leicht wie möglich (sprich: positionierte Argumente mit "Auslassungs-null") und dokumentiere lieber eine Handvoll Aufrufbeispiele.

Lo!