Home Backend Development PHP Tutorial About the usage of PHP template engine Smarty's built-in functions section and sectionelse

About the usage of PHP template engine Smarty's built-in functions section and sectionelse

Jun 19, 2018 am 09:37 AM
php section smarty built-in functions template engine

This article mainly introduces the usage of the built-in functions section and sectionelse of the PHP template engine Smarty. It analyzes in detail the techniques and usage of section and sectionelse for loop processing in the form of examples. Friends in need can refer to it

The example in this article describes the usage of the built-in functions section and sectionelse of the PHP template engine Smarty. Share it with everyone for your reference, as follows:

section is another solution for processing loops in Smarty templates besides foreach. Section is more flexible than foreach, just like an improved foreach statement. In addition to having In addition to the same loop features, it also provides many additional options to better control the execution of the loop. In the template, you must use paired section tags. There are two attributes that must be set, name and loop. For the attributes of section, please see the following table:

The name of the looploop[$variable_name]YesDecided to loop Variable name of timesstartintegerNoThe initial position of loop execution. If the value is a negative number, the starting position is calculated from the end of the array. For example: if there are 7 elements in the array and specify start as -2, then the index pointing to the current array is 5. Illegal values ​​(exceeding the lower limit of the loop array) will be automatically adjusted to the closest legal value.stepintegerNo This value determines the step size of the loop. For example, specifying step=2 will only traverse the subscripts 0, 2, 4, etc. elements. If step is a negative value, then traverse the array from back to front.maxintegerNoSet the maximum number of executions of the loop.showbooleanNoDetermine whether to display the loop.

We use an example to demonstrate the use of {section} and {sectionelse} in Smarty.

Example idea: retrieve the content from the database, assign it to an array variable $_html, assign this array variable to the template, and then traverse the array in the template.

Database, main file index.php, Smarty template initialization file init.inc.php, please refer to the previous article "Analysis of usage of PHP template engine Smarty built-in functions foreach and 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>
Copy after login

Execution result:

section Variables that can be used in the loop area

Attributes Type Is it required Default value Description
name string Yes ##n/a
n/a
0
1
1
true

Variable name

Description

index is used to display the index of the current loop, starting from 0 (if the start attribute is set, then it starts from this value), increasing by 1 each time, (if If the step attribute is specified, it is determined by this value)
index_prev is used to display the previous loop index value. When the loop starts, this value is -1
index_next is used to display the next loop index value. When the loop is executed for the last time, this value is still 1 greater than the current index value (if the step attribute is specified, then Determined by this value)
iteration is used to display the number of loops
first current The value of this variable is true when the section loop is executed for the first time
last The value of this variable is true when the current section loop is executed for the last time
rownum is used to display the number of loops. This attribute is an alias of iteration. They are the same.
loop Used to display the index value of the last loop of the loop. This value can be used inside the loop or after the loop ends.
show is the parameter of section. The value of show is Boolean true and false. If set to false, the loop will not be displayed. If the sectionelse clause is specified, whether the clause is displayed also depends on the value
total is used to display the number of loop executions. This property can be called not only in the loop, but also after the execution is completed

The above is the entire content of this article, I hope it will be useful for everyone's learning. Help, please pay attention to the PHP Chinese website for more related content!

Related recommendations:

How to use ob_start() in php to clear output and selective output

How to implement php calls Yunpian.net interface sends text messages

#

The above is the detailed content of About the usage of PHP template engine Smarty's built-in functions section and sectionelse. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles