Moin,
Klar könnte ich einfach ein Konfigurations-Array übergeben, und dieses dann in der Klasse auswerten, aber ich weiss ja wie viele Parameter ich benötige und fände es für die universelle Einsetzbarkeit der Klasse übersichtlicher, wenn die Parameter "einzeln" übergeben würden.
Das weißt du ja eben nicht. Sonst würdest du ja sowas tun:
$inst = new $className($config[0],$config[1],$config[2]);
Und in der Klasse hättest du dann $param1, $param2 und $param3 (bzw. passendere Namen) in Benutzung.
Du willst aber offen bleiben für zwanzig oder mehr Parameter. Und soviele Parameter sind nur sinnvoll in einem Array übergebbar.
Was sich in der Benutzung ja auch kaum unterscheidet:
$inst = new $className($config);
Und in der Klasse dann $p[0], $p[1] und $p[2]. Schönere Namen kriegte man, indem man assoziative Bezeichner für die Arrayelemente verwenden würde. Das würde auch hinsichtlich der Konfiguration der Parameter wesentlich angenehmer werden (es ist immer schlecht, wenn die Bedeutung eines Parameters von seiner Position im Array abhängt - zu schnell ist das mal aus versehen vertauscht).
Es handelt sich also nicht um eine programmiertechnische Notwendigkeit, sondern eher um die Sauberkeit. Aber wenn es keine Möglichkeit gibt das zu tun werde ich wohl die Array-Lösung benutzen müssen.
Das, was du vor hast, halte ich für extrem unsauber. Nimm das Config-Array als Ganzes. Das ist deutlich sauberer. Da kannst du dann obendrein sogar noch nette Default-Einstellungen fix in der Klasse definieren, und nur bestimmte, umdefinierte Werte werden bei der Instanziierung mit einbezogen - falls dafür Bedarf besteht.
- Sven Rautenberg