phpbar.de logo

Mailinglisten-Archive

[php] eval & Objekte, richtig maskieren

[php] eval & Objekte, richtig maskieren

Thorsten Dikmann th_mlist at dikmann.de
Don Aug 19 19:47:49 CEST 2004


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