phpbar.de logo

Mailinglisten-Archive

[php] Neues Objekt mit variabler Anzahl Argumente

[php] Neues Objekt mit variabler Anzahl Argumente

Rafael Krysciak rafaels_mailinglists at gmx.de
Sam Aug 5 03:54:17 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;
>      }
> }
>
> 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