PHP 템 플 릿 엔진 Smarty 내장 함수 section,sectionelse 용법 상세 설명

이 사례 는 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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기