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