


À propos de l'utilisation de l'imbrication de boucles intelligentes
Cet article présente principalement l'utilisation de l'imbrication de boucles intelligentes et analyse les compétences de mise en œuvre et les précautions associées des boucles imbriquées de modèles Smarty sous forme d'exemples. Les amis dans le besoin peuvent s'y référer
Cet article explique le. exemple d'utilisation de la boucle imbriquée intelligente. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
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"); ?>
L'exemple d'écriture est le suivant suit :
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'); ?>
Le modèle s'écrit comme suit :
templates/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>
Le point clé est $smarty.section. sec1.rownum est une variable Smarty. Dans la boucle de section, cette variable obtiendra la valeur d'index à partir de 1, donc lorsque rownum peut être divisé par 2, elle affichera
Les opérateurs incluent les éléments suivants :
eq, ne, neq, gt, lt, lte, le, gte, ge, est pair, est impair, n'est pas pair , n'est pas impair, pas, mod, p par, pair par, impair par
Exemple :
<!--{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}-->
n'était pas couramment utilisé avant smarty, le site d'un ami a besoin d'être modifié ces deux derniers jours ; je l'ai utilisé pendant un moment et c'est assez intéressant.
Remarque sur la capture :
La fonction de la fonction de capture est de collecter les données générées par le modèle dans une variable au lieu de les afficher sur la page
Toutes les données entre {capture name="foo"} et {/capture} sont reçues dans la variable spécifiée par l'attribut de nom de la fonction ($foo) Les informations collectées peuvent être utilisées dans le. variable spéciale $smarty. Par exemple, capture.foo collecte les données ci-dessus. Si la fonction n'a pas d'attribut de nom, "default" sera utilisé Chaque {capture} doit. correspond à { /capture}, et la fonction de capture ne peut pas être imbriquée Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. Pour plus de contenu connexe, veuillez prêter attention à. le site PHP chinois ! Recommandations associées :À propos de l'utilisation de section et de sectionelse, les fonctions intégrées du moteur de modèles PHP Smarty
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Fonctions génériques imbriquées Les fonctions génériques de Go 1.18 permettent la création de fonctions qui s'appliquent à plusieurs types, et les fonctions génériques imbriquées peuvent créer des hiérarchies de code réutilisables : les fonctions génériques peuvent être imbriquées les unes dans les autres, créant ainsi une structure de réutilisation de code imbriquée. En composant des filtres et des fonctions de mappage dans un pipeline, vous pouvez créer des pipelines réutilisables de type sécurisé. Les fonctions génériques imbriquées fournissent un outil puissant pour créer du code réutilisable et de type sécurisé, rendant votre code plus efficace et plus maintenable.

Comment utiliser le traitement de formulaire Vue pour implémenter l'imbrication récursive de formulaires Introduction : Alors que la complexité du traitement des données frontales et du traitement des formulaires continue d'augmenter, nous avons besoin d'un moyen flexible de gérer les formulaires complexes. En tant que framework JavaScript populaire, Vue nous fournit de nombreux outils et fonctionnalités puissants pour gérer l'imbrication récursive des formulaires. Cet article expliquera comment utiliser Vue pour gérer des formulaires aussi complexes et joindra des exemples de code. 1. Imbrication récursive de formulaires Dans certains scénarios, nous pouvons avoir besoin de gérer une imbrication récursive.

Les tableaux constituent un aspect fondamental et crucial du développement Web et sont utilisés pour présenter les informations dans un format ordonné et clair. Cependant, il peut y avoir des situations dans lesquelles des données plus complexes doivent être présentées, nécessitant l'utilisation de tableaux imbriqués. Les tableaux imbriqués sont des tableaux situés dans d’autres cellules du tableau. Dans cet article, nous vous guiderons tout au long du processus de création de tableaux imbriqués en HTML, avec des explications méticuleusement détaillées et des illustrations pour vous aider à comprendre les concepts plus efficacement. Que vous soyez un débutant ou un concepteur de sites Web expérimenté, cet article vous fournira les connaissances et l'expertise dont vous avez besoin pour maîtriser la création de tableaux imbriqués à l'aide de HTML. Avant de commencer à explorer la création de tableaux imbriqués, il est nécessaire de comprendre la composition de base des tableaux HTML. Les tableaux HTML sont implémentés via l'élément <table>

L'expression Lambda sort de la boucle, des exemples de code spécifiques sont nécessaires en programmation, la structure de boucle est une syntaxe importante qui est souvent utilisée. Cependant, dans certaines circonstances, nous pouvons vouloir sortir de la boucle entière lorsqu'une certaine condition est remplie dans le corps de la boucle, plutôt que de simplement terminer l'itération en cours de la boucle. À l'heure actuelle, les caractéristiques des expressions lambda peuvent nous aider à atteindre l'objectif de sortir de la boucle. L'expression Lambda est un moyen de déclarer une fonction anonyme, qui peut définir une logique de fonction simple en interne. C'est différent d'une déclaration de fonction ordinaire,

Remarque : Cet article compare les boucles et la récursivité du point de vue du langage Go. Lors de l'écriture de programmes, vous rencontrez souvent des situations dans lesquelles une série de données ou d'opérations doivent être traitées de manière répétée. Pour y parvenir, nous devons utiliser des boucles ou de la récursivité. Les boucles et les récursions sont toutes deux des méthodes de traitement couramment utilisées, mais dans les applications pratiques, elles présentent chacune des avantages et des inconvénients, c'est pourquoi la situation réelle doit être prise en compte lors du choix de la méthode à utiliser. Cet article mènera une étude comparative des boucles et de la récursivité dans le langage Go. 1. Boucle Une boucle est un mécanisme qui exécute de manière répétée un certain morceau de code. Il existe trois principaux types de langage Go

La gestion des exceptions imbriquées est implémentée en C++ via des blocs try-catch imbriqués, permettant de déclencher de nouvelles exceptions dans le gestionnaire d'exceptions. Les étapes try-catch imbriquées sont les suivantes : 1. Le bloc try-catch externe gère toutes les exceptions, y compris celles levées par le gestionnaire d'exceptions interne. 2. Le bloc try-catch interne gère des types spécifiques d'exceptions, et si une exception hors de portée se produit, le contrôle est confié au gestionnaire d'exceptions externe.

Cet article expliquera en détail comment PHP renvoie toutes les valeurs d'un tableau pour former un tableau. L'éditeur pense que c'est assez pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. . Utilisation de la fonction array_values() La fonction array_values() renvoie un tableau de toutes les valeurs d'un tableau. Il ne conserve pas les clés du tableau d'origine. $array=["foo"=>"bar","baz"=>"qux"];$values=array_values($array);//$values sera ["bar","qux"]Utilisation une boucle peut utiliser une boucle pour obtenir manuellement toutes les valeurs du tableau et les ajouter à un nouveau

Remplacement des appels récursifs dans les fonctions Java par itération En Java, la récursivité est un outil puissant utilisé pour résoudre divers problèmes. Cependant, dans certains cas, l’utilisation de l’itération peut s’avérer une meilleure option car elle est plus efficace et moins sujette aux débordements de pile. Voici les avantages de l'itération : Plus efficace puisqu'elle ne nécessite pas la création d'un nouveau stack frame à chaque appel récursif. Les débordements de pile sont moins susceptibles de se produire car l'utilisation de l'espace de pile est limitée. Méthodes itératives comme alternative aux appels récursifs : Il existe plusieurs méthodes en Java pour convertir des fonctions récursives en fonctions itératives. 1. Utiliser la pile L'utilisation de la pile est le moyen le plus simple de convertir une fonction récursive en fonction itérative. La pile est une structure de données dernier entré, premier sorti (LIFO), similaire à une pile d'appels de fonction. publicintfa
