我的手册里面怎么没有这个函数,我已经用了很长时间的SMARTY了,也没有用到这个函数,

解决方案 »

  1.   

    smarty本来就有很功能是重复实现的,不必在意。只是为了让你的程序看起来更清析而已。
      

  2.   

    用capture是把模板赋予变量并没有在页面上输出
    而且include的assign属性时,模板内容赋给了变量同时也输出的页面了的
      

  3.   

    include要把模板分到单独文件里,
    如果需要capture的部分不多,或者有嵌套,include会比较麻烦吧
      

  4.   

    capture是将一个块的内容赋给变量
    include是将一个文件的内容赋给变量你不用capture,只用include是可以完全实现capture的功能的。但有时用capture可读性要好很多。
    比如<capture ...>abcde</capture>可以直接把abcde赋给capture。如果你用include的话那还得另开一个文件。对方要看到内容还得打开那个文件。
      

  5.   

    哦,楼上说的倒是有道理。我再多嘴问一句,smarty好像没有函数这个概念吧,一般都是传给模板一些值,或者传给php文件一些值,再把php文件include回来。如果我想重用某个功能,譬如我想传进去几个参数,就能列出具有一定规则的列表,应该用怎样的模式来实现呢,这几天刚开始学,没有过具体的编码经验,但是隐约感觉有好多个函数都能解决功能重用的问题,如capture,include,include_php,insert,大家平时都是怎么用的呢?
      

  6.   

    我说的函数是指smarty里的Built-in Functions
    很多词都是大家随便翻译一下慢慢用成了习惯的。你也不想我满嘴中英文混合吧。smarty的确很多功能是重复的。它主要从应用角度出发,一切为了代码更简洁。你不需要觉得这里面有什么问题。
      

  7.   

    呵呵,没有没有,我现在觉得smarty功能挺强大的,问了这么多也不是觉得里面有什么问题。
    只是想了解一下一般写smarty的模式,怎样的模式比较简洁易懂。里面没有函数的概念,写不了function(),但是提供了许多诸如capture,include,include_php,insert能让php与smarty互相调用的接口,所以想知道大家平时都是怎么用的,或者一般情况下大家都会怎么应用他们,怎么配合起来才能只调用一个tpl,传给该tpl几个参数,就可以实现某一种功能,而不需要为了这种功能而不断的重复编码,不知道我说的明白没有~~~~~~纯属讨论,我会继续学习,没有很大疑惑,再听听大家的经验我就结贴了~~~
      

  8.   

    有函数。Built-in Functions是可以自己扩展的。你说的那些是smarty自带的。
      

  9.   

    ..........可能是我还没看到那吧,不过手册里的built-in Functions 好像叫内建函数Chapter 7. Built-in Functions[第七章.内建函数]
    Table of Contents 
    capture 
    config_load 
    foreach,foreachelse 
    include 
    include_php 
    insert 
    if,elseif,else 
    ldelim,rdelim 
    literal 
    php 
    section,sectionelse 
    strip 
    Smarty comes with several built-in functions. Built-in functions are integral to the template language. You cannot create custom functions with the same names, nor can you modify built-in functions.Smarty自带一些内建函数. 
    内建函数是模板语言的一部分. 
    用户不能创建名称和内建函数一样的自定义函数,也不能修改内建函数.
    原本明白点了,现在又糊涂了~~~~呵呵