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