PHP学习之路之Smarty自定义函数(下)

7 篇文章 0 订阅

1、PHP 自定义函数
(1)、自定义函数
编写函数然后在模板中注册

//$_arr表示参数的数组
        function fn_info($_arr){
            return "你的年龄是:".$_arr['age']."岁,身高:".$_arr['height']."血型:".$_arr['blood'];
        }
//注册函数
        //两个参数参数一为模板的函数名参数二为php的函数名
        $_smarty->register_function('info','fn_info');

在HTML中显示

{info age=28 height=178 blood=A}

效果:这里写图片描述
(2)、块函数
编写函数然后在模板中注册

//块函数
        function bk_textshao($_arr,$_content){
        //判断是否加粗
            if($_arr['bold'])
            {
                $_content="<span style='color:".$_arr['color'].";font-size:".$_arr['fontsize'].";font-weight:bold'>$_content</span>";
            }
            else
                {
                    $_content="<span style='color:".$_arr['color'].";font-size:".$_arr['fontsize']."'>$_content</span>";
                }
            return $_content;
        }
//注册块
        $_smarty->register_block("textshao",'bk_textshao');

在HTML中使用

{textshao color=red fontsize=40px bold=true}
            这是一个块
        {/textshao}

效果:这里写图片描述
2、插件函数
按插件形式扩展的自定义函数
(1).如 果 是 函 数 插 件 , 文 件 必 须 放 在 插 件 目 录 (plugins) , 文 件 名 必 须 是
function.xxx.php,里面的函数名必须是smarty_function_xxx(params,&smarty)。
(2).如果是块插件,文件必须放在插件目录(plugins),文件名必须是block.xxx.php ,
里面的函数名必须是smarty_block_xxx( params, content,&$smarty)。
函数插件:
在plugins文件夹里新建function.info.php文件

<?php
function smarty_function_info($_arr) {
    $_a = '';
    if ($_arr['show']) {
        $_a =  "您的年龄是:{$_arr['age']}岁,身高:{$_arr['height']},血型:{$_arr['blood']}";
    }
    return $_a;
}
?>

在HTML中使用

    {info age=28 height=178 blood=A}

效果:这里写图片描述
块插件
在plugins文件夹里新建block.textshao.php文件

function smarty_block_textshao($_arr, $_content) {
        if ($_arr['bold']) {
            $_content = "<span style='color:{$_arr['color']};font-size:{$_arr['fontsize']};font-weight:bold;'>$_content</span>";
        } else {
            $_content = "<span style='color:{$_arr['color']};font-size:{$_arr['fontsize']};'>$_content</span>";
        }
        return $_content;  
}

在HTML中使用

    {textshao color=red fontsize=40px bold=true}
            这是一个块
        {/textshao}

效果:这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值