Heim > Artikel > Backend-Entwicklung > Über die Verwendung der integrierten Funktionen der PHP-Template-Engine Smarty Abschnitt und Abschnitt sonst
Dieser Artikel stellt hauptsächlich die Verwendung der integrierten Funktionen section und sectionelse der PHP-Template-Engine Smarty vor. Er analysiert detailliert die Techniken und die Verwendung von section und sectionelse für die Schleifenverarbeitung in Form von Beispielen siehe es
Das Beispiel in diesem Artikel beschreibt die Verwendung der integrierten Funktionsabschnitte und Abschnitte der PHP-Template-Engine Smarty. Teilen Sie es wie folgt mit allen zur Referenz:
Abschnitt ist neben foreach eine weitere Lösung für die Verarbeitung von Schleifen in Smarty-Vorlagen. Der Abschnitt ist flexibler als foreach, genau wie eine verbesserte foreach-Anweisung, außer dass er darüber hinaus verfügt Neben den gleichen Schleifenfunktionen bietet es auch viele zusätzliche Optionen, um die Ausführung der Schleife besser zu steuern. In der Vorlage müssen gepaarte Abschnitts-Tags verwendet werden. Die Attribute des Abschnitts finden Sie in der folgenden Tabelle:
属性 | 类型 | 是否必须 | 缺省值 | 描述 |
---|---|---|---|---|
name | string | Yes | n/a | 该循环的名称 |
loop | [$variable_name] | Yes | n/a | 决定循环次数的变量名称 |
start | integer | No | 0 | 循环执行的初始位置. 如果该值为负数,开始位置从数组的尾部算起. 例如:如果数组中有7个元素,指定start为-2,那么指向当前数组的索引为5. 非法值(超过了循环数组的下限)将被自动调整为最接近的合法值. |
step | integer | No | 1 | 该值决定循环的步长. 例如指定step=2将只遍历下标为0、2、4等的元素. 如果step为负值,那么遍历数组的时候从后向前遍历. |
max | integer | No | 1 | 设定循环最大执行次数. |
show | boolean | No | true | 决定是否显示该循环. |
Wir demonstrieren anhand eines Beispiels die Verwendung von {section} und {sectionelse} in Smarty.
Beispielidee: Rufen Sie den Inhalt aus der Datenbank ab, weisen Sie ihn einer Array-Variablen $_html zu, weisen Sie diese Array-Variable der Vorlage zu und durchlaufen Sie dann das Array in der Vorlage.
Datenbank, Hauptdatei index.php, Smarty-Template-Initialisierungsdatei init.inc.php, siehe vorherigen Artikel „Analyse der Verwendung der in die PHP-Template-Engine Smarty integrierten Funktionen foreach und foreachelse“
/ tpl/index.tpl
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>section,sectionelse</title> </head> <body> <table align="center" border="1" width="800"> <tr> <th>编号(iteration)</th> <th>编号(rownum)</th> <th>姓名</th> <th>电子邮件</th> <th>添加时间</th> </tr> <{section loop=$data name="ls" max="100" start="0" step="2" }> <!-- 使用 section 遍历数组 $data,max 表示最多可以循环多少条,start 表示从哪个数组下标开始显示,step决定了循环的步长,如果设置为2,那么将遍历下标为0,2,4……的元素 --> <!-- 在此,我们做几个保留变量 $smarty.section 的操作 --> <!-- 当数据显示第一条的时候,第一行的表格背景为黄色,使用属性:first --> <!-- 当数据显示最后一条的时候,最后一行的表格背景为蓝色,使用属性:last --> <{if $smarty.section.ls.first}> <tr align="center" bgcolor="#FFFF00"> <{elseif $smarty.section.ls.last}> <tr align="center" bgcolor="#0000FF"> <{else}> <tr align="center"> <{/if}> <td><{$smarty.section.ls.iteration}></td> <!-- iteration 是保留变量中显示行号的属性 --> <td><{$smarty.section.ls.rownum}></td> <!-- rownum 是保留变量中显示行号的属性 --> <td><{$data[ls].username}></td> <!-- 输出数组第二维下标为 username 的元素值 --> <td><{$data[ls].email}></td> <!-- 输出数组第二维下标为 email 的元素值 --> <td><{$data[ls].addTime}></td> <!-- 输出数组第二维下标为 addTime 的元素值 --> </tr> <{sectionelse}> <!-- 如果分配过来的数组没有内容的话,显示下面内容 --> <tr> <td colspan="5">对不起!暂时没有数据。</td> </tr> <{/section}> <{if $data}> <!-- 如果循环的次数不为空的话,那么使用 Smarty 的保留变量 {$smarty.section} 显示出循环的次数 --> <tr> <td align="center" colspan="5">循环的次数为:<{$smarty.section.ls.total}></td> </tr> <{/if}> </table> </body> </html>
Ausführungsergebnis:
Abschnitt Variablen, die können im Schleifenbereich verwendet werden
Variablenname
|
Beschreibung |
||||||||||||||||||||||
index | wird verwendet, um den Index der aktuellen Schleife anzuzeigen, beginnend bei 0 (wenn das Startattribut festgelegt ist, beginnt er mit diesem Wert) und erhöht sich jedes Mal um 1 (Wenn das Schrittattribut angegeben ist, beginnt es mit diesem Wert) Entscheidung) | ||||||||||||||||||||||
index_prev | wird verwendet, um den vorherigen anzuzeigen Schleifenindexwert. Wenn die Schleife beginnt, ist dieser Wert -1 | ||||||||||||||||||||||
index_next | wird verwendet, um den nächsten Schleifenindexwert anzuzeigen . Wenn die Schleife zum letzten Mal ausgeführt wird, ist dieser Wert immer noch 1 größer als der aktuelle Indexwert (Wenn das Schrittattribut angegeben ist, wird es durch diesen Wert bestimmt) | ||||||||||||||||||||||
Iteration | Wird verwendet, um die Anzahl der Schleifen anzuzeigen | ||||||||||||||||||||||
first | Der Wert dieser Variable ist wahr, wenn die aktuelle Abschnittsschleife zum ersten Mal ausgeführt wird | ||||||||||||||||||||||
last | Der Wert dieser Variable ist wahr wenn die aktuelle Abschnittsschleife zum letzten Mal ausgeführt wird | ||||||||||||||||||||||
rownum td> | Dieses Attribut wird zur Anzeige der Anzahl der Schleifen verwendet Alias der Iteration, beide sind gleich | ||||||||||||||||||||||
loop | Verwenden Sie dies, um den Indexwert der letzten Iteration der Schleife anzuzeigen Der Wert kann innerhalb der Schleife oder nach dem Ende der Schleife verwendet werden | ||||||||||||||||||||||
show | Es ist ein Parameter des Abschnitts Der Wert von show ist boolesch wahr und falsch. Wenn auf false gesetzt, wird die Schleife nicht angezeigt. Wenn die sectionelse-Klausel angegeben ist, hängt die Anzeige der Klausel auch vom Wert ab | ||||||||||||||||||||||
total | Wird zur Anzeige der Häufigkeit der Schleifenausführung verwendet . Diese Eigenschaft kann nicht nur in der Schleife aufgerufen werden, sondern auch nach Abschluss der Ausführung |
So verwenden Sie ob_start() in PHP, um die Ausgabe und die selektive Ausgabe zu löschen
Wie man es implementiert PHP-Anrufe Senden Sie SMS über die Yunpian.com-Schnittstelle
Das obige ist der detaillierte Inhalt vonÜber die Verwendung der integrierten Funktionen der PHP-Template-Engine Smarty Abschnitt und Abschnitt sonst. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!