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; > } > } mhm, da fällt mir nur das böse eval() ein oder du versorgst deine Klassen mit einer factory methode: class foo { public function __construct ($param1, $param2) { } static public factory($param1, $param2) {return new foo(($param1, $param2))} } call_user_func_array(array('foo', 'factory'), $args); -- Sebastian Mendel www.sebastianmendel.de
php::bar PHP Wiki - Listenarchive