Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse der variablen Ausgabe der ThinkPHP-Vorlagen-Engine

Analyse der variablen Ausgabe der ThinkPHP-Vorlagen-Engine

不言
不言Original
2018-06-08 17:22:441438Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung der variablen Ausgabe der ThinkPHP-Vorlagen-Engine vor und analysiert die allgemeine Verwendung und die Verwendungsfähigkeiten der variablen Ausgabe. Er ist von großem praktischem Wert.

Dies Der Artikel analysiert ThinkPHP anhand von Beispielen zur Verwendung der Variablenausgabe in der Template-Engine. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Wir wissen bereits, dass wir die Zuweisungsmethode in Aktion verwenden können, um Vorlagenvariablen Werte zuzuweisen. Wie wird der Wert der Variablen in der Vorlagendatei nach der Zuweisung ausgegeben?

Wenn wir in Aktion eine Namensvorlagenvariable zuweisen:

$name = 'ThinkPHP';
$this->assign('name',$name);

Verwenden Sie die integrierte Vorlagen-Engine, um die Variable auszugeben, verwenden Sie sie einfach in der Vorlagendatei:
{$name}

Das Ergebnis nach der Vorlagenkompilierung ist

<?php echo($name);?>

Wenn es schließlich ausgeführt wird, kann das Ausgabeergebnis von ThinkPHP an der Beschriftungsposition angezeigt werden. Beachten Sie, dass zwischen { und $ in kein Leerzeichen stehen darf das Vorlagenetikett, andernfalls ist das Etikett ungültig. Das Standard-Start-Tag für gewöhnliche Tags ist { und das End-Tag ist}. Es kann auch durch Festlegen von TMPL_L_DELIM und TMPL_R_DELIM geändert werden. Beispielsweise definieren wir in der Projektkonfigurationsdatei:

&#39;TMPL_L_DELIM&#39;=>&#39;<{&#39;,  
&#39;TMPL_R_DELIM&#39;=>&#39;}>&#39;,

Dann die Variable Die obige Ausgabebezeichnung sollte geändert werden in:

<{$name}>

Wir werden die Standard-Tag-Definition verwenden, um den folgenden Inhalt zu erläutern. Der erste Parameter in der Zuweisungsmethode ist der in der Vorlagendatei verwendete Variablenname Der folgende Code:

Wenn
$name = &#39;ThinkPHP&#39;;
$this->assign(&#39;name2&#39;,$name);

erneut {$name} verwendet, muss {$name2} verwendet werden, um den Wert der Vorlagenvariablen auszugeben zur Vorlagenvariablen:

$User = M(&#39;name&#39;);
$user = $User->find(1);
$this->assign(&#39;user&#39;,$user);

also Das heißt, $user ist tatsächlich eine Array-Variable. Wir können die folgende Methode verwenden, um verwandte Werte auszugeben:

{$user[&#39;name&#39;]}//输出用户的名称
{$user[&#39;email&#39;]} //输出用户的email地址

Wenn $user ein Objekt ist Anstelle eines Arrays kann

$User = M(&#39;name&#39;);
$User->find(1);
$this->assign(&#39;user&#39;,$User);

die folgenden ausgabebezogenen Attributwerte verwenden:

{$user:name}// 输出用户的名称
{$user:email} // 输出用户的email地址

Nach Version 3.1 wurde die Attributausgabemethode der Klasse angepasst, um die native PHP-Objektschreibmethode zu unterstützen Daher muss das obige Tag geändert werden in:

{$user->name}// 输出用户的名称
{$user->email} // 输出用户的email地址

Um die Vorlagendefinition zu erleichtern, kann auch die Punktsyntax unterstützt werden. Beispielsweise kann das obige

{$user[&#39;name&#39;]}// 输出用户的名称
{$user[&#39;email&#39;]} // 输出用户的email地址

in

{$user.name}
{$user.email}

Da die Standardausgabe der Punktsyntax ein Array ist, sind die beiden oben genannten Methoden unter Konfiguration äquivalent. Wir können den Ausgabeeffekt der Punktsyntax bestimmen, indem wir den Parameter TMPL_VAR_IDENTIFY konfigurieren ein Beispiel: {$user.name}

Wenn TMPL_VAR_IDENTIFY auf Array gesetzt ist, dann ist

{$user.name} äquivalent zu {$user['name']}, d. h die Ausgabe-Array-Variable.

Wenn TMPL_VAR_IDENTIFY auf obj gesetzt ist, dann ist

{ $user.name} äquivalent zu {$user:name}, dem Attribut des Ausgabeobjekts.

Wenn TMPL_VAR_IDENTIFY leer bleibt, bestimmt das System automatisch, ob die auszugebende Variable ein Array oder ein Objekt ist. Diese Methode wirkt sich bis zu einem gewissen Grad auf die Effizienz aus und unterstützt nur zweidimensionale Arrays und zweidimensionale Arrays. Objektattribute der Ebene.

Wenn es sich um die Ausgabe eines mehrdimensionalen Arrays oder eines mehrschichtigen Objektattributs handelt, können Sie die folgende Definition verwenden:

{$user.sub.name}//使用点语法输出

oder

{$user[&#39;sub&#39;][&#39;name&#39;]}// 输出三维数组的值  
{$user:sub:name}// 输出对象的多级属性

Das Obige ist Ich hoffe, dass der gesamte Inhalt dieses Artikels hilfreich ist. Für weitere verwandte Inhalte achten Sie bitte auf die chinesische PHP-Website!

Verwandte Empfehlungen:

Die Verwendung von Aktionsklassen im Laravel-Programmarchitekturdesign

ThinkPHP-Vorlagenbereichsbeurteilungsausgabe im In-Tag und Range-Tag Verwendung

Das obige ist der detaillierte Inhalt vonAnalyse der variablen Ausgabe der ThinkPHP-Vorlagen-Engine. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn