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读注册表
Oct 09 PHP
PHP4实际应用经验篇(9)
Oct 09 PHP
截获网站title标签之家内容的例子
Oct 09 PHP
PHP新手上路(六)
Oct 09 PHP
php查找任何页面上的所有链接的方法
Dec 03 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
PHP中子类重载父类的方法【parent::方法名】
May 06 PHP
Ubuntu 16.04下安装PHP 7过程详解
Mar 28 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
浅析PHP中的闭包和匿名函数
Dec 25 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
Jun 09 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 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获取网络文件的实现代码
2010/01/01 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
PHP 二维array转换json的实例讲解
2018/08/21 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
Javascript字符串拼接小技巧(推荐)
2016/06/02 Javascript
ztree实现左边动态生成树右边为内容详情功能
2017/11/03 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
JavaScript代码实现微博批量取消关注功能
2021/02/05 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python 编码处理-str与Unicode的区别
2016/09/06 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
YSL Beauty加拿大官方商城:圣罗兰美妆加拿大
2017/05/15 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
香港草莓网:Strawberrynet香港
2019/05/10 全球购物
离婚协议书格式
2015/01/26 职场文书
小学体育课教学反思
2016/02/16 职场文书
乔迁新居祝福语
2019/11/04 职场文书