Mailinglisten-Archive |
Hallo!
Ich habe mir ein Objekt "classPage" geschrieben, welches praktisch die HTML
seite mit allen Informationen & Templates speichert, die ich gerade benötige.
Vereinfach dargestellt besteht z.b. das template index aus
page[header]
page[content]
page[copyright]
page[footer]
"content" wiederum hat einige subtemplates wie "page[ueberschrift]",
"page[text]" usw.
Damit ich alle Variablen ersetzen kann, muss ich entsprechend die templates
von innen nach Außen eval()'en.
Früher ging das auch problemlos, da hießen die Variablen auch $header,
$footer, $ueberschrift, etc - und eval() ersetzte sie entsprechend.
Nun hab ich mir ja wie bereits erwähnt das Objekt geschrieben und habe die
Variablen-Namen, die es zu ersetzen gilt, umgeschrieben:
$this->page[header]
$this->page[content]
$this->page[copyright]
$this->page[footer]
$this->page[ueberschrift] etc...
Jetzt weiß ich nicht, wie ich diese Variablen im eval()-Code maskieren muss,
denn $this->page[header] ergibt wenn man eval drüber laufen lässt z.b.
"Array[header]". Er interpretiert also nur $this->page.
${this->page[header]} habe ich versucht, gibt nen Fehler:
Parse error: parse error, unexpected T_OBJECT_OPERATOR
in /homepages/classPage.php(310) : eval()'d code on line 3,
ebenso $this->{page[header]}
Parse error: parse error, unexpected '{', expecting T_STRING
in /homepages/classPage.php(310) : eval()'d code on line 3
$this{->page[header]} gibt natürlich Object{->page[header]}
Also meine Frage: WIe muss ich das richtig maskieren, damit der Wert von
$this->page[header] eingesetzt wird?
Thorsten
php::bar PHP Wiki - Listenarchive