이 글에서는 주로 PHP 템플릿 엔진 Smarty의 내장 함수인 section과 sectionelse의 사용법을 소개합니다. 루프 처리를 위한 section과 sectionelse의 기술과 사용법을 예제 형식으로 자세히 분석합니다.
섹션은 Smarty 템플릿에 있습니다. 루프를 처리하는 또 다른 방법인 섹션은 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 루프 영역에서 사용할 수 있는 변수
변수 이름 |
Description |
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텍스트로 방문 횟수 계산 방법 사용, 그림과 텍스트로 자세한 설명
PHP의 비교 연산 및 논리 연산 예제에 대한 자세한 설명
php정의 및like_text() 함수 설명 사용예제에 대한 자세한 설명
위 내용은 PHP 템플릿 엔진 Smarty 내장 함수 섹션, 섹션 사용법 및 예제 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!