一、作用

在模板中调用自定义函数的返回结果,带缓存功能,效率高

一般用于数据库查询,这种标签自带缓存,可以避免重复查询数据


二、语法

{function name=自定义函数的名称 ....}{/function}


三、参数介绍

参数
介绍
name自定义函数的名称,需要预先定义函数并且以my_为前缀
param向自定义函数中传递参数
param数字向自定义函数中传递多个参数,例如param2=第二个参数值,param3=第三个参数值(V4.5.1以上版本有效)
cache
缓存时间单位秒,默认关闭缓存;当cache=3600时,表示缓存时间1小时,建议数据查询的标签都加上缓存参数
return
默认返回变量为t,调用方式就是{$t.字段值}


四、返回变量

变量
参数
{$debug}
当查询不到数据时,会返回错误信息,调试模板时很有用哦(写在标签以外)
{$count}当前查询的记录,当存在分页时,表示当前页的记录数(写在标签以外)
{$key}
当前记录指针位置,从0开始(写在标签以内)
{$return}当前查询的结果集数组
当存在return=字母时,以上变量都要写成这种格式{$变量_字母},例如{...reutrn=a}时,变量格式{$key_a}


、显示字段

根据你的预订函数返回值来显示


六、无参数的实例

1、定义预定义函数:my_tianrui_test

新建或者编辑文件config/custom.php,增加下面的函数

function my_tianrui_test() {
    return "这是tianrui函数的返回值";
}


2、模板中的调用方法

{function name=my_tianrui_test cache=300}{$t}{/function}

这句话会输出 “这是tianrui函数的返回值”
错误诊断:{$debug}


七、带一个参数的实例

1、定义预定义函数:my_tianrui_test2

新建或者编辑文件config/custom.php,增加下面的函数

function my_tianrui_test2($p) {
    return "这是tianrui函数的返回值:".$p;
}

p是函数的参数,通过标签传入的动态变量,只接受一个参数传入


2、模板中的调用方法

{function name=my_tianrui_test2 param=888 cache=300}{$t}{/function}

这句话会输出 “这是tianrui函数的返回值:888”
错误诊断:{$debug}


⑧、带多个参数的实例

1、定义预定义函数:my_tianrui_test3

新建或者编辑文件config/custom.php,增加下面的函数

function my_tianrui_test3($p, $pp) {
    return "这是tianrui函数的返回值:".$p."和".$pp;
}

p和pp是函数的参数,通过标签传入的动态变量,只接受一个参数传入


2、模板中的调用方法

{function name=my_tianrui_test2 param=888 param2=999 cache=300}{$t}{/function}

这句话会输出 “这是tianrui函数的返回值:888和999”
错误诊断:{$debug}


综合示例:

1、统计指定内容模块的已通过的内容数量

新建或者编辑文件config/custom.php,增加下面的函数

function my_tongji_module_nums($dir) {
    if (!$dir) {
        return "没有param参数";
    }
    // 这里是写查询
  return \Phpcmf\Service::M()->table(SITE_ID.'_'.$dir.'_index')->where('status', 9)->counts();
}

模板中的调用方法

{function name=my_tongji_module_nums param=news cache=300}{$t}{/function}

输出 news模块的已通过数量,param是模块目录,缓存300秒
错误诊断:{$debug}


2、统计任意表的可用数据量

新建或者编辑文件config/custom.php,增加下面的函数

function my_tongji_table_nums($table) {
    if (!$table) {
        return "没有param参数";
    }
    // 这里是写查询
  return \Phpcmf\Service::M()->table($table)->counts();
}

模板中的调用方法

{function name=my_tongji_table_nums param=member cache=300}{$t}{/function}

输出 member表的数量,param是表名称,缓存300秒
错误诊断:{$debug}


文档最后更新时间:2021-08-04 12:24:51
我来修改此文档(1) 不会操作怎么办?