Ben tegen twee dingen aangelopen, die waarschijnlijk wel onder dezelfde noemer vallen, en kom er niet uit. Hoop dat iemand me wat meer inzicht kan geven.
1) Stel, je hebt een string, gevuld met oo code: bijv. 3 lagen aan properties.
$str = "property->subproperty->subsubproperty";
En je wilt die code, maar dan omgezet in daadwerkelijke oo code, toekennen aan een object. Ik probeerde iets als:
$obj->{$str} = "waarde";
of
$obj->{eval("\$str")} = "waarde";
En nog tientallen variaties daarop.
Hoe pak ik zoiets aan?
2) Vergelijkbaar probleem bij het benaderen van een klasse.
Ik wil graag een methode aansporen van een geinclude, maar niet geïnstantieerde, klasse, maar de klassenaam is variabel.
Als je de klassenaam vantevoren weet, dan gebruik je iets als:
$resultaat = Klassenaam::methode();
Maar als de klassenaam nu in een variabele zit, hoe los je het dan op?
Iets als?
$klassenaam = "Klassenaam";
$resultaat = eval("\$klassenaam")::methode();
Het komt dus allemaal een beetje neer op hoe je PHP code, verpakt in een string, tot leven brengt in daadwerkelijke syntax.
Hoop dat je kan helpen.
1) Stel, je hebt een string, gevuld met oo code: bijv. 3 lagen aan properties.
$str = "property->subproperty->subsubproperty";
En je wilt die code, maar dan omgezet in daadwerkelijke oo code, toekennen aan een object. Ik probeerde iets als:
$obj->{$str} = "waarde";
of
$obj->{eval("\$str")} = "waarde";
En nog tientallen variaties daarop.
Hoe pak ik zoiets aan?
2) Vergelijkbaar probleem bij het benaderen van een klasse.
Ik wil graag een methode aansporen van een geinclude, maar niet geïnstantieerde, klasse, maar de klassenaam is variabel.
Als je de klassenaam vantevoren weet, dan gebruik je iets als:
$resultaat = Klassenaam::methode();
Maar als de klassenaam nu in een variabele zit, hoe los je het dan op?
Iets als?
$klassenaam = "Klassenaam";
$resultaat = eval("\$klassenaam")::methode();
Het komt dus allemaal een beetje neer op hoe je PHP code, verpakt in een string, tot leven brengt in daadwerkelijke syntax.
Hoop dat je kan helpen.