Dynamische Variablennamen in Smarty
Will ich Zugriff auf einige Variablen, die ich zugewiesen habe, die dynamisch von PHP in Smarty, hier ist ein Beispiel:
$content_name = 'body'
$smarty->assign('content_name',$content_name);
$smarty->assign($content_name.'_title',$title);
$smarty->assign($content_name.'_body',$body);
//assigned values
//$content_name = home
//$home_title = $title
//$home_body = $body
Dem Grund will ich den Zugriff auf diese dynamisch ist, da rufe ich mehrere Versionen einer Funktion, die den code oben, Sie alle verwenden die gleiche Vorlage und ist daher nicht möchten, verwenden Sie einfach $title, $body etc, da Ihre Werte im Konflikt miteinander.
Gegeben, dass ich weiß, ich will den Zugriff auf die Titel-und Körper-Variablen auf der Grundlage der content_name ich, wie kann ich dies erreicht innerhalb von smarty?
- Menschen immer noch die smarty verwenden?
- Haben Sie sich Gedanken über die Zuordnung der Variablen in ein array, die dann geloopt werden in Smarty?
- ich habe noch smarty verwenden - warum nicht?
- In einem array... bin ich mit einem blonden moment?... Ich werde check it out 😛
- Ich poste ein Beispiel
- Mit "Körper" als ein Beispiel, hier macht die Vorstellung der Fälle, wo Sie sein würde, die dynamische Zuweisung von Variablen schwierig, als {body_title} normalerweise würde zeigen, einmal auf einer Seite, so dass keine Notwendigkeit, um das dynamische zuweisen von nichts. Wenn Sie die Verwaltung der unterschiedlichen display-Blöcken, die auf eine Vorlage, und weisen Sie Variablen, auf jeden Fall weisen die Werte in ein array in jeder Funktion und Schleife über Sie, als adam vorschlägt. Ihr code-design ist schwer zu verstehen, obwohl, könnte sein Arbeit zu erklären, Ihren Fall ein wenig mehr.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als pro meinen Kommentar auf ein array verwenden, anstelle von dynamischen Variablen, hier ein Beispiel, wie Sie die vars array:
php:
smarty:
Auch wenn dieser Beitrag schon sehr alt ist, das vorliegende genau richtig ist accpeted aber nicht eine genau richtig für die Frage. Es ist nur eine andere Möglichkeit zu handhaben Hauptproblem.
Ist die Frage, wie dynamische Variablen...
für die Probe, es sollte so etwas wie
PHP
Smarty
Dies ist der dynamische Weg, es zu benutzen. Auch wenn es nicht der beste Weg in diesem Fall 🙂
Wenn Sie haben eine Art von Objekten oder mehrdimensionales array... und Sie wiederhole Ihnen, Sie haben die Betreuung über den ganzen string und nicht nur die Nummer...
Beispiel:
PHP
Smarty
Aber mit
{$foobar{$i}}
auf ein einfaches array arbeiten würde.Für alle, die es brauchen, zu genießen.