Ik wil een nieuwe instance aanmaken van een variabele class.
Nu kan dit heel makkelijk in php met de volgende code
Dit gaat goed voor Foo, maar Bar heeft parameters nodig.
Ik weet op voorhand niet om welke class het gaat of hoeveel parameters er mee gegeven gaan worden, dit moet in theorie een oneindig aantal kunnen zijn.
Nu kan ik dit op 2 manieren doen:
- Foo en Bar __construct's 1 parameter geven, dan een array meegeven met hierin alle parameters
- eval() gebruiken om de class te laden
Optie 1 is nog aanvaardbaar, maar ook niet de beste als je het mij vraagt.
Optie 2 is uit den boze voor redenen die een ieder hier wel bekend zullen zijn.
Heeft er iemand een beter oplossing voor die ik over het hoofd zie??
Nu kan dit heel makkelijk in php met de volgende code
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| class Foo { public function __construct() { // do iets } } class Bar { public function __construct($a, $b) { // do iets } } $sClass = 'Foo'; $oFoo = new $sClass(); |
Dit gaat goed voor Foo, maar Bar heeft parameters nodig.
Ik weet op voorhand niet om welke class het gaat of hoeveel parameters er mee gegeven gaan worden, dit moet in theorie een oneindig aantal kunnen zijn.
Nu kan ik dit op 2 manieren doen:
- Foo en Bar __construct's 1 parameter geven, dan een array meegeven met hierin alle parameters
- eval() gebruiken om de class te laden
Optie 1 is nog aanvaardbaar, maar ook niet de beste als je het mij vraagt.
Optie 2 is uit den boze voor redenen die een ieder hier wel bekend zullen zijn.
Heeft er iemand een beter oplossing voor die ik over het hoofd zie??