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 文章中的远程图片采集到本地的代码
Jul 30 PHP
如何突破PHP程序员的技术瓶颈分析
Jul 17 PHP
PHP新手用的Insert和Update语句构造类
Mar 31 PHP
PHP字符串word末字符实现大小写互换的方法
Nov 10 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
php实现有序数组打印或排序的方法【附Python、C及Go语言实现代码】
Nov 10 PHP
PHP getDocNamespaces()函数讲解
Feb 03 PHP
asp函数split()对应php函数explode()
Feb 27 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
Laravel5.7 Eloquent ORM快速入门详解
Apr 12 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 PHP
PHP 实现重载
Mar 09 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
php中常见的sql攻击正则表达式汇总
2014/11/06 PHP
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
2020/03/26 PHP
在jQuery中 关于json空对象筛选替换
2013/04/15 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
jquery动态赋值id与动态取id方法示例
2017/08/21 jQuery
使用vue-resource进行数据交互的实例
2017/09/02 Javascript
zTree获取当前节点的下一级子节点数实例
2017/09/05 Javascript
Node.js中sequelize时区的配置方法
2017/12/10 Javascript
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
[40:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs TNC
2018/04/01 DOTA
Pthon批量处理将pdb文件生成dssp文件
2015/06/21 Python
python去除扩展名的实例讲解
2018/04/23 Python
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
2019/04/01 Python
20行python代码实现人脸识别
2019/05/05 Python
详解Django 时间与时区设置问题
2019/07/23 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
计算Python Numpy向量之间的欧氏距离实例
2020/05/22 Python
总结html5自定义属性有哪些
2020/04/01 HTML / CSS
海淘母婴商城:国际妈咪
2016/07/23 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
农民工工资发放承诺书
2014/03/31 职场文书
导师工作推荐信范文
2014/05/17 职场文书
作文批改评语
2014/12/25 职场文书
捐助倡议书
2015/01/19 职场文书
单位接收函范文
2015/01/30 职场文书
放假通知
2015/04/14 职场文书