如何使用Smarty循环显示字母和数字的列表

本文概述

  • 数值列表
  • 字母清单
在Smarty中使用循环和许多编程语言, 使开发人员可以轻松编写模板。例如, 假设你需要编写某种Lexicon页面, 并且需要显示一个有组织/无组织的列表, 其中包含字母的每个字符以及重定向到某个URL的数字, 在该URL上以某些字符开头的单词其他清单。
通过使用HTML手动编写所有内容, 无疑这将成为一项无聊的任务:
< a href="http://www.srcmini.com/lexicon/0"> 0< /a> < a href="http://www.srcmini.com/lexicon/1"> 1< /a> < a href="http://www.srcmini.com/lexicon/2"> 2< /a> < a href="http://www.srcmini.com/lexicon/3"> 3< /a> < a href="http://www.srcmini.com/lexicon/4"> 4< /a> < a href="http://www.srcmini.com/lexicon/5"> 5< /a> < !-- .... --> < a href="http://www.srcmini.com/lexicon/X"> X< /a> < a href="http://www.srcmini.com/lexicon/Y"> Y< /a> < a href="http://www.srcmini.com/lexicon/Z"> Z< /a>

真的没有人想要。忽略很难维护的事实, 源代码文件的大小将与高质量代码有很大的不同。如果你在项目中使用Smarty模板, 则可以借助循环和范围修饰符轻松地生成以前的HTML。
数值列表对于数字和字母列表, 我们将在foreach循环中使用from和range修饰符。可以说, 这些属性的作用就像传播运算符一样, 在这种情况下, 按照升序排列(因为我们使用的范围是0到9), smarty也提供了降序(9到0)的支持:
{* To display the list of numbers from 0 to *}{foreach item=i from=0|@range:9}{* $i in this case contains the number in the order of the loop e.g 1, 2, 3, 4 ...The output would be:< a href="http://www.srcmini.com/lexicon/0"> 0< /a> *}< a href="http://www.srcmini.com/lexicon/{$i}"> {$i}< /a> {/foreach}

前面的代码片段足以在我们的词典中显示0到9之间的数字。请注意, 它不仅限于0到9, 还可以是任何其他数字。
字母清单就像我们处理数字范围一样, Smarty非常聪明, 可以对字母字符进行同样的处理, 因此, 如果你要显示从A到Z的列表, 以下代码段将为你解决问题:
{* To display the list of characters from A to Z *}{foreach item=i from='A'|@range:'Z'}{* $i in this case contains the character in the order of the loop e.g A, B, C, D ...The output would be:< a href="http://www.srcmini.com/lexicon/A"> A< /a> *}< a href="http://www.srcmini.com/lexicon/{$i}"> {$i}< /a> {/foreach}

逆序的相同逻辑也适用于字符(从Z到A)。在这种情况下, 对于字符, 我们的循环使用大写字符, 因此, 字符的输出将大写(如预期的那样)。对小写字符执行相同操作将以小写形式显示所有字符。
【如何使用Smarty循环显示字母和数字的列表】编码愉快!

    推荐阅读