1/这个在plugins目录中的modifier.truncate.php2/注意看fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)他的最后一个参数,display中用的true,fetch中默认参数是false

解决方案 »

  1.   

    多谢楼上的指点,但我看来看去还是不明白,再请教如下:
    这个插件的代码我知道是在modifier.truncate.php中,但我的意思是fetch()函数中是哪些代码判断模板中是否含有变量调节器的,我指的是在fetch()函数中,不是指插件本身,目的是了解运行机制。另外,我看了Smarty中文手册,手册中介绍的fetch()方法中只有三个参数的,但上面的代码中却有四个参数,这是为何?百思不得其解,这$display变量的值是哪来的,虽然上面楼上写着:
    display中用的true,fetch中默认参数是false。
    但还是想不明白,fetch($resource_name, $cache_id, $compile_id, true);这行中最后一个参数并没有指明变量名称啊。还有,Smarty模板中还有一个fetch()函数(是自定义函数),这个函数与方法有何区别?我对面象对象不太了解,到现在还是不了解这其中的区别,恳请一并指点一二好吗?谢谢。
      

  2.   

    你对函数都没有理解吧,定义函数的时候,参数可以有默认值,放在后面,调用函数的时候,不写,就相当于那个参数是用的默认值了,你还是好好的看看php手册Smarty.Class.php中写的太清楚了/**
     * executes & returns or displays the template results
     *
     * @param string $resource_name
     * @param string $cache_id
     * @param string $compile_id
     * @param boolean $display
     */
    function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)
    你把这个函数看明白,你就明白了(这个函数很长,且调用了其他函数,慢慢看)
      

  3.   

    那个fetch在plugins/function.fetch.php
      

  4.   

    非常感谢楼上的指点,总算知道了fetch()函数原来是插件,但还是不明白方法与自定义函数的区别?对OO总是感到很迷惑,这fetch()函数和fetch()方法名称相同,但一个是自定义函数,一个是方法,在类中函数和方法有何区别呀,我怎么这么笨哪,老是搞不懂这些,真的该死。fetch($resource_name, $cache_id, $compile_id, true);
    这是display()函数中的代码,调用了fetch()函数,这里的true并没有赋值给任何变量,这与function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)有何区别?还是那句话:自定义函数与方法区别搞不懂?都是function同样的定义函数哪,当然函数名称是不同的。我将代码反复看来看去,还是看不出哪部分代码是判断模板中是否含有变量调节器的,真的看不出。恳请楼主再指点一下,谢谢。
      

  5.   

    方法是给类调用的。自定义函数是用在模板里的。$tpl->fetch();这个是方法。{fetch}这个是自定义函数。