smarty loop 중첩 사용법에 대해
이 글은 주로 smarty loop 중첩 사용법을 소개하고, Smarty 템플릿 중첩 루프의 구현 기술과 관련 주의사항을 예시 형태로 분석합니다. 필요한 친구들이 참고할 수 있습니다.
본 글의 예시는 smarty 사용법을 설명합니다. 루프 중첩. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
test3.php:
<?php require "main.php"; $forum = array( array("category_id" => 1, "category_name" => "公告区", "topic" => array( array("topic_id" => 1, "topic_name" => "站务公告") ) ), array("category_id" => 2, "category_name" => "文学专区", "topic" => array( array("topic_id" => 2, "topic_name" => "好书介绍"), array("topic_id" => 3, "topic_name" => "奇文共赏") ) ), array("category_id" => 3, "category_name" => "电脑专区", "topic" => array( array("topic_id" => 4, "topic_name" => "硬件周边"), array("topic_id" => 5, "topic_name" => "软件讨论") ) ) ); $tpl->assign("forum", $forum); $tpl->display("test3.htm"); ?>
샘플 템플릿은 다음과 같이 작성되었습니다.
templates/test3.htm:
<html> <head> <title>循环嵌套测试</title> </head> <body> <table width="200" border="0" align="center" cellpadding="3" cellspacing="0"> <{section name=sec1 loop=$forum}> <tr> <td colspan="2"><{$forum[sec1].category_name}></td> </tr> <{section name=sec2 loop=$forum[sec1].topic}> <tr> <td width="25"> </td> <td width="164"><{$forum[sec1].topic[sec2].topic_name}></td> </tr> <{/section}> <{/section}> </table> </body> </html>
test2.php:
<?php require_once('./include/db_fns.php'); include_once("./Smarty/libs/Smarty.class.php"); //包含Smarty类文件 $smarty = new Smarty(); //建立Smarty实例对象$Smarty $smarty->template_dir = "./templates/dedecms";//设置模板目录 $smarty->compile_dir = "templates/templates_c"; //设置编译目录 $smarty->assign("template_url", "./"); $smarty->assign("$site_url", "//www.jb51.net/"); $smarty->assign("$site_name", "文章管理系统"); $smarty->left_delimiter = "<{"; //设置左边界符 $smarty->right_delimiter = "}>"; //设置右边界符 $db_conn = db_connect(); $query = "SELECT cat_ID,cat_name FROM categories ORDER BY cat_ID DESC"; $result = mysql_query($query); $i = 5; while(($row = mysql_fetch_array($result)) && $i > 0) { $query2="SELECT ID, post_title, post_date FROM post WHERE post.post_category =$row[cat_ID] AND post_status <> 'unpbulish' ORDER BY post_date DESC"; $result2=mysql_query($query2); $i = 5; while(($row2 = mysql_fetch_array($result2)) && $i > 0) { $row2[post_date]=date('m-d',strtotime($row2[post_date])); $category = array("cat_ID"=>"$row[cat_ID]","cat_name"=>"$row[cat_name]", "post"=>array("ID"=>"$row2[ID]", "post_title"=>"$row2[post_title]" , "post_category"=>"$row2[post_category]" , "post_date"=>"$row2[post_date]")); $i--; } } $smarty->assign("forum", $category); $smarty->display("test2.htm"); ?>
test2.htm:
<html> <head> <title>嵌套循环测试</title> </head> <body> <table width="200" border="0" align="center" cellpadding="3" cellspacing="0"> <{section name=sec1 loop=$forum}> <tr> <td colspan="2"><{$forum[sec1].cat_id}></td> </tr> <{section name=sec2 loop=$forum[sec1].post}> <tr> <td width="25"> </td> <td width="164"><{$forum[sec1].post[sec2].post_title}></td> </tr> <{/section}> <{/section}> </table> </body> </html>
test4.php:
<?php require "main.php"; $my_array = array( array("value" => "0"), array("value" => "1"), array("value" => "2"), array("value" => "3"), array("value" => "4"), array("value" => "5"), array("value" => "6"), array("value" => "7"), array("value" => "8"), array("value" => "9")); $tpl->assign("my_array", $my_array); $tpl->display('test4.htm'); ?>
템플릿은 다음과 같이 작성됩니다. :
<html> <head> <title>横向重复表格测试</title> </head> <body> <table width="500" border="1" cellspacing="0" cellpadding="3"> <tr> <{section name=sec1 loop=$my_array}> <td><{$my_array[sec1].value}></td> <{if $smarty.section.sec1.rownum is p by 2}> </tr> <tr> <{/if}> <{/section}> </tr> </table> </body> </html>
포인트는 $ smarty.section.sec1.rownum 입니다. 섹션 루프에서 이 변수는 1부터 시작하는 인덱스 값을 가져오므로 rownum을 2로 나눌 수 있으면 <가 출력됩니다. ;/tr>
: eq, ne, neq, gt, lt, lte, le, gte, ge, is even, is 홀수, is not even, is not 홀수, not, mod, p by , even by,odd by
예:
<!--{if $bigsize ge '650'}--> <img src="photo/<!--{$photo}-->" border="0" width="650" class="product_photo" /> <!--{else}--> <img src="photo/<!--{$photo}-->" border="0" class="product_photo" /> <!--{/if}-->
예전에는 smarty를 자주 사용하지 않았지만, 지난 이틀 동안 친구의 웹사이트를 수정해야 해서 사용해 봤는데 꽤 흥미롭습니다. .
캡처에 대한 참고사항:캡처 기능의 기능은 템플릿에서 출력된 데이터를 페이지에 출력하는 대신 변수로 수집하는 것입니다.
{capture name="foo"}와 { 사이의 모든 것. /capture }는 함수의 name 속성($foo)에 지정된 변수로 전달됩니다.
수집된 정보는 특수 변수 $smarty에서 사용할 수 있습니다.
예를 들어, Capture.foo는 위의 데이터를 수집합니다. 이 함수에는 이름 속성이 없으며 "default"가 사용됩니다.
각 {capture}는 {/capture}에 해당해야 하며 캡처 함수는 중첩될 수 없습니다.
위 내용이 이 기사의 전체 내용이기를 바랍니다. 모든 사람의 학습에 도움이 될 것입니다. 도움말, 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트에 주목하세요!
관련 권장 사항:
PHP 템플릿 엔진 Smarty 내장 함수 사용에 대한 섹션 및 Else위 내용은 smarty loop 중첩 사용법에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











중첩된 일반 함수 Go 1.18의 일반 함수를 사용하면 여러 유형에 적용되는 함수를 생성할 수 있으며 중첩된 일반 함수는 재사용 가능한 코드 계층 구조를 만들 수 있습니다. 일반 함수는 서로 중첩되어 중첩된 코드 재사용 구조를 생성할 수 있습니다. 필터를 구성하고 함수를 파이프라인으로 매핑하면 재사용 가능한 유형 안전 파이프라인을 생성할 수 있습니다. 중첩된 일반 함수는 재사용 가능하고 유형이 안전한 코드를 생성하기 위한 강력한 도구를 제공하여 코드를 보다 효율적이고 유지 관리하기 쉽게 만듭니다.

Vue 양식 처리를 사용하여 양식의 재귀 중첩을 구현하는 방법 소개: 프런트 엔드 데이터 처리 및 양식 처리의 복잡성이 계속 증가함에 따라 복잡한 양식을 처리할 수 있는 유연한 방법이 필요합니다. 널리 사용되는 JavaScript 프레임워크인 Vue는 양식의 재귀 중첩을 처리할 수 있는 많은 강력한 도구와 기능을 제공합니다. 이 글에서는 Vue를 사용하여 이러한 복잡한 양식을 처리하는 방법과 코드 예제를 첨부하는 방법을 소개합니다. 1. 양식의 재귀 중첩 일부 시나리오에서는 재귀 중첩을 처리해야 할 수도 있습니다.

표는 웹 개발의 기본적이고 중요한 측면이며 정보를 질서 있고 명확한 형식으로 표시하는 데 사용됩니다. 그러나 중첩된 테이블을 사용해야 하는 더 복잡한 데이터를 표시해야 하는 상황이 있을 수 있습니다. 중첩 테이블은 다른 테이블 셀 내에 위치한 테이블입니다. 이 문서에서는 개념을 보다 효과적으로 이해하는 데 도움이 되는 그림과 함께 꼼꼼하고 자세한 설명을 통해 HTML로 중첩 테이블을 작성하는 과정을 안내합니다. 귀하가 초보자이건 숙련된 웹 디자이너이건 간에 이 문서에서는 HTML을 사용하여 중첩 테이블을 만드는 데 능숙해지는 데 필요한 지식과 전문 지식을 제공합니다. 중첩 테이블 만들기를 살펴보기 전에 HTML 테이블의 기본 구성을 이해해야 합니다. HTML 테이블은 <table> 요소를 통해 구현됩니다.

람다 표현식은 루프에서 벗어나기 때문에 특정 코드 예제가 필요합니다. 프로그래밍에서 루프 구조는 자주 사용되는 중요한 구문입니다. 그러나 특정 상황에서는 현재 루프 반복을 종료하는 대신 루프 본문 내에서 특정 조건이 충족될 때 전체 루프를 중단하고 싶을 수도 있습니다. 이때 람다 표현식의 특징은 루프에서 벗어나는 목표를 달성하는 데 도움이 될 수 있습니다. 람다 표현식은 내부적으로 간단한 함수 논리를 정의할 수 있는 익명 함수를 선언하는 방법입니다. 일반적인 함수 선언과는 다릅니다.

참고: 이 기사에서는 Go 언어의 관점에서 루프와 재귀를 비교합니다. 프로그램을 작성할 때 일련의 데이터나 작업을 반복적으로 처리해야 하는 상황에 자주 직면하게 됩니다. 이를 달성하려면 루프나 재귀를 사용해야 합니다. 루프와 재귀는 모두 일반적으로 사용되는 처리 방법이지만 실제 응용에서는 각각 장단점이 있으므로 어떤 방법을 사용할지 선택할 때 실제 상황을 고려해야 합니다. 이 기사에서는 Go 언어의 루프와 재귀에 대한 비교 연구를 수행합니다. 1. 루프 루프는 특정 코드 부분을 반복적으로 실행하는 메커니즘입니다. Go 언어에는 세 가지 주요 유형이 있습니다.

중첩된 예외 처리는 중첩된 try-catch 블록을 통해 C++에서 구현되므로 예외 처리기 내에서 새 예외가 발생할 수 있습니다. 중첩된 try-catch 단계는 다음과 같습니다. 1. 외부 try-catch 블록은 내부 예외 처리기에서 발생한 예외를 포함하여 모든 예외를 처리합니다. 2. 내부 try-catch 블록은 특정 유형의 예외를 처리하며 범위를 벗어난 예외가 발생하면 외부 예외 처리기에 제어가 제공됩니다.

이 기사에서는 PHP가 배열의 모든 값을 반환하여 배열을 형성하는 방법을 자세히 설명합니다. 편집자는 이것이 매우 실용적이라고 생각하므로 이 기사를 읽고 뭔가를 얻을 수 있기를 바랍니다. . array_values() 함수 사용하기 array_values() 함수는 배열에 있는 모든 값의 배열을 반환합니다. 원래 배열의 키는 유지되지 않습니다. $array=["foo"=>"bar","baz"=>"qux"];$values=array_values($array);//$values는 ["bar","qux"]를 사용하여 루프는 루프를 사용하여 배열의 모든 값을 수동으로 가져오고 새 값에 추가할 수 있습니다.

Java 함수의 재귀 호출을 반복으로 대체 Java에서 재귀는 다양한 문제를 해결하는 데 사용되는 강력한 도구입니다. 그러나 어떤 경우에는 반복을 사용하는 것이 더 효율적이고 스택 오버플로가 발생할 가능성이 적기 때문에 더 나은 옵션일 수 있습니다. 반복의 장점은 다음과 같습니다. 각 재귀 호출에 대해 새 스택 프레임을 생성할 필요가 없으므로 더 효율적입니다. 스택 공간 사용량이 제한되어 있기 때문에 스택 오버플로가 발생할 가능성이 적습니다. 재귀 호출의 대안인 반복 메소드: Java에는 재귀 함수를 반복 함수로 변환하는 여러 메소드가 있습니다. 1. 스택 사용 스택을 사용하는 것은 재귀 함수를 반복 함수로 변환하는 가장 쉬운 방법입니다. 스택은 함수 호출 스택과 유사한 LIFO(후입선출) 데이터 구조입니다. 공공 인파
