Mailinglisten-Archive |
Andreas Ahlenstorf schrieb: > Am 04.08.2006 um 13:13 schrieb Sebastian Mendel: > > >> kurz: du willst eine Methode/Funktion mit unterschiedlicher Anzahl an >> Parametern aufrufen können? >> > > Nein. Das ist nicht das Problem. > > class foo { > > public function __construct ($param1, $param2) { } > > } > > class bar { > > public function __construct ($param1) { } > > } > > Jetzt will ich die Klassen so laden können: > > $object = load('foo', array($param1, $param2)); > > Oder eben: > > $object = load('bar', array($param1)); > > Und ich will in load() nicht sowas schreiben müssen: > > function load ($class, $args = array()) > { > switch ($class) > case 'foo': > return new foo($args[0], $args[1]); > break; > case 'bar': > return new bar($args[0]); > break; > } > } > > Ich kann jetzt hingehen, und halt __construct() $args mitgeben, aber > ich hätte halt lieber die ausgeschriebenen Parameter, damit ich sie > mit einem Interface erzwingen kann. Da bliebe sonst nur noch eine > statische Methode, welche die Klasse mit den richtigen Parametern > aufruft. Aber das saugt alles, wenn ich es einfacher haben kann ;) > > Gruss, > Andreas > > Ich würde die Klassen so umschreiben dass sie generell ein Parameter als array entgegen nehmen. Dann würde deine function so aussehen: function load ($class, $args = array()) { return new $class($args); } Was meinem die andern? Gruß Rafael
php::bar PHP Wiki - Listenarchive