PHP 템 플 릿 엔진 Smarty 내장 함수 section,sectionelse 용법 상세 설명
section 은 Smarty 템 플 릿 에서 foreach 를 제외 한 다른 순환 을 처리 하 는 방안 입 니 다.section 은 foreach 보다 유연 합 니 다.마치 개 선 된 foreach 문장 과 같 습 니 다.같은 순환 특성 을 가 지 는 동시에 추가 옵션 도 많이 제공 하여 순환 을 잘 제어 할 수 있 습 니 다.템 플 릿 에 서 는 쌍 을 이 루 는 section 표 시 를 사용 해 야 합 니 다.설정 해 야 할 속성 name 과 loop 이 두 개 있 습 니 다.section 의 속성 은 다음 표를 보십시오.
속성
유형
반드시
부족 값
묘사 하 다.
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
이 순환 을 표시 할 지 여 부 를 결정 합 니 다.
Smarty 의{section}과{sectionelse}의 사용 을 실례 를 통 해 보 여 줍 니 다.
인 스 턴 스 사고:데이터베이스 에서 내용 을 추출 하여 배열 변 수 를 부여 합 니 다$html,이 배열 변 수 를 템 플 릿 에 배분 한 다음 템 플 릿 에서 이 배열 을 옮 겨 다 닙 니 다.
데이터베이스,주 파일 index.php,Smarty 템 플 릿 초기 화 파일 init.inc.php,앞의 을 참고 하 십시오.
/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 큽 니 다.(step 속성 을 지정 하면 이 값 으로 결 정 됩 니 다)
iteration
반복 횟수 표시
first
현재 section 순환 이 처음 실 행 될 때 이 변수의 값 은 true 입 니 다.
last
현재 section 순환 이 마지막 으로 실 행 될 때 이 변수의 값 은 true 입 니 다.
rownum
순환 횟수 를 표시 하 는 데 사용 합 니 다.이 속성 은 iteration 의 별명 입 니 다.둘 은 같 습 니 다.
loop
이전 순환 시의 색인 값 을 표시 하 는 데 사용 합 니 다.이 값 은 내부 순환 이나 순환 이 끝 난 후에 사용 할 수 있 습 니 다.
show
section 의 인자 입 니 다.show 의 값 은 불 값 true 와 false 입 니 다.false 로 설정 하면 이 순환 은 표시 되 지 않 습 니 다.섹 션 else 자 구 를 지정 하면 이 자 구 를 표시 할 지 여부 도 이 값 에 달 려 있 습 니 다.
total
순환 실행 횟수 를 표시 합 니 다.순환 중 일 뿐만 아니 라 실행 이 끝 난 후에 도 이 속성 을 호출 할 수 있 습 니 다.
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
이 글 은 스마트 템 플 릿 을 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.