自建函数是smarty提供的函数,不允许修改,只能被调用;

自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用;

示例:使用smarty自定义函数的机制,编写一个函数myfun1,通过调用该函数(可以输入必要的参数),完成循环输出5次“hello,顺平”,要求内容,颜色,字体大小均可置顶。

(1)自定义函数

//编写自定义函数
function test1($args){
$str = "";
for($i = 1;$i<= $args['times'];$i++){
$str .= "<font size='{$args['size']}' color='{$args['color']}'>{$args['con']}</font><br/>";
}
return $str;
} //注册自定义函数
$smarty->register_function("lhy1","test1");
<{*tpl中引用自定义函数*}>
<{lhy1 times="5" size="5" con="Hello,顺平" color="red"}>

(2)自定义块

//编写自定义函数
function test2($args,$con){
$str = "";
for($i = 1;$i<= $args['times'];$i++){
$str .= "<font size='{$args['size']}' color='{$args['color']}'>{$con}</font><br/>";
}
return $str;
} //注册自定义函数
$smarty->register_block("lhy2","test2");
<{lhy2 times="5" size="5" color="red"}>
Hello,顺平
<{/lhy2}>

(3)利用samrty插件形式增加自定义函数

在smarty包中plugins文件夹下,新建一个文件function.lhy4.php。

文件名的格式:function.自定义函数名.php

function.lhy4.php代码页内容如下,

函数的名字:function smarty_function_自定义函数名($params, &$smarty)。

<?php

function smarty_function_lhy4($params, &$smarty){
$str = "";
for($i = 1;$i<= $params['times'];$i++){
$str .= "<font size='{$params['size']}' color='{$params['color']}'>{$params['con']}</font><br/>";
}
return $str;
}
<{lhy4 times="5" size="5" con="Hello,顺平" color="red"}>

(4)利用samrty插件形式增加自定义块

在smarty包中plugins文件夹下,新建一个文件function.lhy5.php。

文件名的格式:block. 块名.php

function.lhy4.php代码页内容如下,

函数的名字:function smarty_block_块名($params,$content, &$smarty)。

<?php
function smarty_block_lhy5($params, $content, &$smarty){
$str = "";
for($i = 1;$i<= $params['times'];$i++){
$str .= "<font size='{$params['size']}' color='{$params['color']}'>{$content}</font><br/>";
}
return $str;
}
<{lhy5 times="5" size="5" color="red"}>
Hello,顺平
<{/lhy5}>

五,Smarty模板技术/引擎——自定义函数机制的更多相关文章

  1. 三,Smarty模板技术/引擎——变量操作(2)

    1, 变量的分类 ① 从PHP中分配的变量,比如a.php跳转到b.php时候,可以在a.php中分配变量,b.tpl中直接调用.a.php中代码,$smarty->assign(‘str’,’ ...

  2. 四,Smarty模板技术/引擎-----内建函数

    内建函数是smarty提供的函数,不允许修改,只能被调用: 自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用. PHP的自建函数很多,讲解下<foreach>和< ...

  3. 一,Smarty模板技术/引擎——简介

    Smarty是一个使用PHP写出来的模板PHP模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使PHP程序员与美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改 ...

  4. 二 ,Smarty模板技术/引擎——变量操作(1)

    1,基本变量 $smarty->assign('data1',3); $smarty->assign('data2',3.45); $smarty->assign('data3',' ...

  5. Smarty模板技术学习

    模板引擎技术:使得php代码和html代码分离的技术就称为"模板引擎技术" 自定义smarty模板技术实现 <?php //迷你smarty原理 class MiniSmar ...

  6. 在smarty模板中使用PHP函数的方法

    在smarty模板中如果要在显示的资料使用php函数时,如果是只有一个参数的函数比如说去空白的trim会写成 sample1 代码如下: <{$colname|trim}> 那如果使用像i ...

  7. smarty模板技术

    一.什么是smarty?smarty是一个使用php写出来的模板php模板引擎,它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用php程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美 ...

  8. smarty详细使用教程(韩顺平smarty模板技术笔记)

    MVC是一种开发模式,强调数据的输入.处理.显示是强制分离的 Smarty使用教程1.如何配置我们的smarty解压后把libs文件夹放在网站第一级目录下,然后创建两个文件夹templates 存放模 ...

  9. Smarty模板技术学习(二)

    本文主要包括以下内容 公共文件引入与继承 内容捕捉 变量调剂器 缓存 Smarty过滤器 数据对象.注册对象 与已有项目结合 公共文件引入与继承 可以把许多模板页面都用到的公共页面放到单独文件里边,通 ...

随机推荐

  1. js引用类型赋值,深拷贝与浅拷贝

    JS中引用类型使用等号“=” 赋值,相当于把原来对象的地址拷贝一份给新的对象,这样原来旧的对象与新的对象就指向同一个地址,改变其中一个对象就会影响另外那个对象,也就是所谓的浅拷贝.例如: var ar ...

  2. 第五章 大数据平台与技术 第13讲 NoSQL数据库

    NoSQL不是不用SQL,是Not only SQL,不仅仅是结构化的查询. NoSQL兴起的原因 在Web2.0时代新浪一分钟可以发送两万条微博,苹果可以下载4.7万次应用. 数据的高并发性,同时有 ...

  3. weblogic如何部署web应用

    weblogic如何部署web应用 程序员的基础教程:菜鸟程序员

  4. 633E Binary Table

    传送门 分析 我们发现n特别小,所以可以从这里入手 我们记录出所有列中某一种状态的列有多少个 我们再记录出每种列最少有多少个1(原来的1的个数和取反后的个数去最小值) 于是我们可以得出对于所有列异或一 ...

  5. js运算浮点数

    在js中做小数:9.3+0.3会发现,得到的结果并不是9.6,而是9.600000000000001.这是为什么? Javascript采用了IEEE-745浮点数表示法,这是一种二进制表示法,可以精 ...

  6. 导入excel精华版

    //须引入 NPOI, NPOI.OOXML, NPOI.Openxml4Net, NPOI.OpenxmlFormats等程序集 自己去下载吧 NPOI组件很好用不可能下不到自己去吧,通常去百度网盘 ...

  7. 轻松搭建持续集成工具jenkins

    1.Jenkins介绍1)什么是持续集成随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软 ...

  8. jQuary总结9:html()的常见用法

    1html() 不传参数 用于获取内容 //html <div> <p></p> <span></span> 文本 </div> ...

  9. 团体程序设计天梯赛L2-002 链表去重 2017-03-22 18:12 25人阅读 评论(0) 收藏

    L2-002. 链表去重 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个带整数键值的单链表L,本题要求你编写程序,删除 ...

  10. python字符串字典列表互转

    #-*-coding:utf-8-*- #1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} #字典转为字符串,返回:<type ' ...