이 글에서는 주로 PHP 템플릿 엔진 Smarty의 내장 함수 section과 sectionelse의 사용법을 소개하고 있으며, 루프 처리를 위한 section과 sectionelse의 기술과 사용법도 예제 형식으로 자세히 분석합니다.
이 문서의 예제에서는 PHP 템플릿 엔진 Smarty 내장 함수 섹션, 다른 섹션 사용법을 설명합니다. 다음과 같이 참조용으로 모든 사람과 공유하세요.
section은 foreach 외에 Smarty 템플릿에서 루프를 처리하기 위한 또 다른 솔루션입니다. 섹션은 동일한 루프 특성을 갖는다는 점을 제외하면 향상된 foreach 문과 마찬가지로 foreach보다 더 유연합니다. , 루프 실행을 더 잘 제어하기 위해 많은 추가 옵션이 제공됩니다. 템플릿에는 쌍으로 구성된 섹션 태그를 사용해야 합니다. 섹션 속성은 다음 표를 참조하세요.
Attributes | Type | 필수인가요? | 기본값 | 설명 |
---|---|---|---|---|
name | string | Yes | n/a | 루프 이름 |
loop | [$variable _name] | 예 | n /a | 루프 수를 결정하는 변수 이름 |
start | integer | No | 0 | 루프 실행의 초기 위치 . 값이 음수인 경우 시작 위치는 배열 끝부터입니다. 예: 배열에 7개의 요소가 있고 시작을 -2로 지정하면 현재 배열을 가리키는 인덱스는 5입니다. 잘못된 값 (루프 배열의 하한을 초과하는 경우)는 가장 가까운 법적 값으로 자동 조정됩니다. |
step | integer | No | 1 | 이 값은 루프 배열의 단계 크기를 결정합니다. 예를 들어 step=2를 지정하면 인덱스 0, 2, 4 등이 있는 요소만 순회합니다. step이 음수 값이면 배열을 순회할 때 뒤에서 앞으로 순회합니다. |
max | integer | No | 1 | 루프의 최대 실행 횟수를 설정합니다. |
show | boolean | No | true | 표시 여부 결정 루프. |
Smarty에서 {section} 및 {sectionelse}의 사용을 보여주기 위해 예제를 사용합니다.
예제 아이디어: 데이터베이스에서 콘텐츠를 검색하고 이를 배열 변수 $_html에 할당하고 이 배열 변수를 템플릿에 할당한 다음 템플릿의 배열을 순회합니다.
데이터베이스, 메인 파일 index.php, Smarty 템플릿 초기화 파일 init.inc.php는 이전 글 "PHP 템플릿 엔진 Smarty 내장 함수 foreach 및 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>
실행 결과:
section 루프 영역에서 사용할 수 있는 변수
변수 이름 |
설명 |
index | 는 현재 루프를 표시하는 데 사용됩니다. 인덱스는 0부터 시작하고(start 속성이 설정된 경우 이 값에서 시작함) 매번 1씩 증가합니다(step 속성이 지정된 경우 이 값에 따라 결정됨). ) |
index_prev | 은 루프 시작 시 이 값이 -1 |
index_next | 으로 루프가 실행될 때 사용됩니다. 마지막으로 이 값은 현재 인덱스 값보다 여전히 1 더 큽니다(단계 속성이 지정된 경우 이 값으로 결정됨). |
iteration | 은 루프 수를 표시하는 데 사용됩니다. |
first | 이 변수의 값은 현재 섹션 루프가 처음 실행될 때 true |
last | 이 변수의 값은 현재 섹션 루프가 마지막으로 실행될 때 true |
rownum | 는 루프 수를 표시하는 데 사용됩니다. |
loop | 은 루프의 마지막 주기에 대한 인덱스 값을 표시하는 데 사용됩니다. 루프 내부 또는 루프 종료 후에 사용됩니다. |
show | 는 섹션의 매개변수입니다. show의 값은 true이고 false로 설정되면 루프가 표시되지 않습니다. sectionelse 절이 지정된 경우 해당 절의 표시 여부는 루프 실행 횟수를 표시하는 데 사용되는 |
total | 값에 따라 달라집니다. 이 속성은 루프 내에서뿐만 아니라 실행 후에도 호출될 수 있습니다. |
출력 및 선택 출력을 지우기 위해 PHP에서 ob_start()를 사용하는 방법
문자 메시지를 보내기 위해 클라우드 패치 네트워크 인터페이스를 호출하는 PHP를 구현하는 방법
위 내용은 PHP 템플릿 엔진 Smarty의 내장 기능 섹션 및 섹션 사용에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!