PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例


Posted in PHP onMay 23, 2018

本文实例讲述了PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能。分享给大家供大家参考,具体如下:

这里模拟tp框架模板变量分配与赋值操作。

extract($arr);  //extract  的作用:从数组中将变量导入到当前的符号表,键做变量,值做值!
compact();  //  — 建立一个数组,包括变量名和它们的值

class base{
  public $array;
  public $key;
  public $val;
  public function assign($key,$val){
    if(array($val)){
      $this->array["$key"] = $val;
    }else{
      $this->array["$key"] = compact($val);
    }
  }
  public function display($tpl){
    $this->assign($this->key,$this->val);
    extract($this->array);
    if(file_exists($tpl)){ //模板存在就加载文件。
      include $tpl;
    }
  }
}
class indexcontroller extends base{
  public function index(){
    $arr = array('a'=>'aaaaaaa','b'=>array('a'=>'111111','b'=>'22222','c'=>'3333'),'c'=>'ccccccc','d'=>'dddddd','e'=>'eeeee');
    $str = '我是字符串';
    $this->assign('arr',$arr);
    $this->assign('str',$str);
    $this->display('index.html');
  }
}
$base = new base;
$base->index();

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP获取url的函数代码
Aug 02 PHP
PHP+Mysql+jQuery实现动态展示信息
Oct 08 PHP
php实现把数组按指定的个数分隔
Feb 17 PHP
php多文件上传实现代码
Feb 20 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
PHP获取时间排除周六、周日的两个方法
Jun 30 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
Jul 30 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 PHP
yii中widget的用法
Dec 03 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
php单链表实现代码分享
Jul 04 PHP
详解PHP的抽象类和抽象方法以及接口总结
Mar 15 PHP
PHP工厂模式简单实现方法示例
May 23 #PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 #PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
May 23 #PHP
PHP实现的mysql读写分离操作示例
May 22 #PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 #PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 #PHP
PhpStorm本地断点调试的方法步骤
May 21 #PHP
You might like
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
扩展easyui.datagrid,添加数据loading遮罩效果代码
2010/11/02 Javascript
jQuery1.4.2与老版本json格式兼容的解决方法
2011/02/12 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
浅谈webpack 构建性能优化策略小结
2018/06/13 Javascript
vue使用laydate时间插件的方法
2018/11/14 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
原生JS实现弹幕效果的简单操作指南
2020/11/10 Javascript
Python Web开发模板引擎优缺点总结
2014/05/06 Python
python回调函数用法实例分析
2015/05/09 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
Python使用Pandas对csv文件进行数据处理的方法
2019/08/01 Python
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
水果花束:Fruit Bouquets
2017/12/20 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
解释一下抽象方法和抽象类
2016/08/27 面试题
十岁生日同学答谢词
2014/01/19 职场文书
蓝颜请假条
2014/04/11 职场文书
开工仪式策划方案
2014/05/23 职场文书
公司合并协议书范本
2014/09/30 职场文书
党员剖析材料范文
2014/12/18 职场文书
社区敬老月活动总结
2015/05/07 职场文书
走进毛泽东观后感
2015/06/04 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android
Django框架之路由用法
2022/06/10 Python
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技