phpbar.de logo

Mailinglisten-Archive

[php] Neues Objekt mit variabler Anzahl Argumente

[php] Neues Objekt mit variabler Anzahl Argumente

Sebastian Mendel lists at sebastianmendel.de
Fre Aug 4 13:32:18 CEST 2006


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