À propos de l'utilisation de la section et de la section des fonctions intégrées du moteur de modèles PHP Smarty

不言
Libérer: 2023-04-01 12:38:02
original
1887 Les gens l'ont consulté

Cet article présente principalement l'utilisation des fonctions intégrées section et sectionelse du moteur de modèles PHP Smarty. Il analyse en détail les techniques et l'utilisation de section et sectionelse pour le traitement des boucles sous forme d'exemples. référez-vous à lui

L'exemple de cet article décrit l'utilisation de la section des fonctions intégrées et de la section autre du moteur de modèle PHP Smarty. Partagez-le avec tout le monde pour votre référence, comme suit :

section est une autre solution pour traiter les boucles dans les modèles Smarty en plus de foreach. La section est plus flexible que foreach, tout comme une instruction foreach améliorée, sauf qu'elle a en plus. aux mêmes caractéristiques de boucle, il fournit également de nombreuses options supplémentaires pour mieux contrôler l'exécution de la boucle. Dans le modèle, des balises de section appariées doivent être utilisées. Il y a deux attributs qui doivent être définis, le nom et la boucle. Pour les attributs de section, veuillez consulter le tableau suivant :

属性 类型 是否必须 缺省值 描述
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 决定是否显示该循环.
.

Nous utilisons un exemple pour démontrer l'utilisation de {section} et {sectionelse} dans Smarty.

Exemple d'idée : récupérer le contenu de la base de données, l'attribuer à une variable de tableau $_html, puis affecter cette variable de tableau au modèle, puis parcourir le tableau dans le modèle.

Base de données, fichier principal index.php, fichier d'initialisation du modèle Smarty init.inc.php, veuillez vous référer à l'article précédent "Analyse de l'utilisation du moteur de modèle PHP, fonctions intégrées Smarty foreach et 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>
Copier après la connexion

Résultat de l'exécution :

la section peut être utilisé dans la zone de boucle Variables

index. est un paramètre de section. la valeur de show est booléenne true et false Si elle est définie sur false, la boucle ne sera pas affichée. Si la clause sectionelse est spécifiée, l'affichage de la clause dépend également de la valeur

Nom de la variable

变量名

描述

index 用于显示当前循环的索引,从 0 开始(如果设置了 start 属性,那么就由该值开始),每次加 1,(如果指定了 step 属性,那么由该值决定)
index_prev 用于显示上一个循环索引值,循环开始时,此值为 -1
index_next 用于显示下一个循环索引值,循环执行到最后一次时,此值仍然比当前索引值大 1(如果指定了 step 属性,那么由该值决定)
iteration 用于显示循环的次数
first 当前 section 循环在第一次执行时该变量的值为 true
last 当前 section 循环在最后一次执行时该变量的值为 true
rownum 用于显示循环的次数,该属性是 iteration 的别名,两者相同
loop 用于显示该循环上一次循环时的索引值,该值可以用于循环内部或循环结束后
show 是 section 的参数,show 取值为布尔值 true 和 false,如果设置为false,该循环将不显示。如果指定了 sectionelse 子句,该子句是否显示也取决于该值
total 用于显示循环执行的次数。不仅可以在循环中,也可以在执行结束后调用此属性

Description

est utilisé pour afficher l'index de la boucle en cours, en commençant à 0 (si l'attribut start est défini, alors il commence avec cette valeur), et augmente de 1 chacun time (si l'attribut step est spécifié, alors il commence par Cette valeur détermine)
index_prev est utilisé pour afficher le précédent valeur d'index de boucle Lorsque la boucle démarre, cette valeur est -1
index_next est utilisée pour afficher la valeur d'index de boucle suivante. . Lorsque la boucle est exécutée pour la dernière fois, cette valeur est toujours supérieure à la valeur d'index actuelle 1 (si l'attribut step est spécifié, alors il est déterminé par cette valeur)
itération Utilisé pour afficher le nombre de boucles
premier La valeur de cette variable est vraie lorsque la boucle de section actuelle est exécutée pour la première fois
dernière La valeur de cette variable est vrai lorsque la boucle de la section courante est exécutée pour la dernière fois
rownum Utilisé pour afficher le nombre de boucles, cet attribut est un alias d'itération, les deux sont identiques
boucle Utilisé pour afficher la valeur d'index du dernier cycle de la boucle Cette valeur peut être utilisée à l'intérieur de la boucle ou après la fin de la boucle
show
total Utilisé pour afficher la fréquence d'exécution de la boucle . Cette propriété peut être appelée non seulement dans la boucle, mais également une fois l'exécution terminée

Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à tout le monde. Apprendre est utile. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Comment utiliser ob_start() en php pour effacer la sortie et la sortie sélective

Comment implémenter appels php Envoyer des SMS via l'interface Yunpian.com

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!