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 xml留言板 xml存储数据的简单例子
Aug 24 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
PHP 文件缓存的性能测试
Apr 25 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
php另类上传图片的方法(PHP用Socket上传图片)
Oct 30 PHP
php使用for语句输出三角形的方法
Jun 09 PHP
yii分页组件用法实例分析
Dec 28 PHP
Laravel中Trait的用法实例详解
Mar 16 PHP
php htmlentities()函数的定义和用法
May 13 PHP
Zend Framework常用校验器详解
Dec 09 PHP
php用wangeditor3实现图片上传功能
Aug 22 PHP
浅析PHP7 的垃圾回收机制
Sep 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
推荐几个开源的微信开发项目
2014/12/28 PHP
CodeIgniter中使用Smarty3基本配置
2015/06/29 PHP
PHP图像识别技术原理与实现
2016/10/27 PHP
PHP explode()函数用法讲解
2019/02/15 PHP
js常用排序实现代码
2010/12/28 Javascript
javascript日期转换 时间戳转日期格式
2011/11/05 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
ES6 更易于继承的类语法的使用
2019/02/11 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
Python中for循环详解
2014/01/17 Python
Python实现一个Git日志统计分析的小工具
2017/12/14 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Python爬虫实现模拟点击动态页面
2020/03/05 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
Evisu官方网站:日本牛仔品牌,时尚街头设计风格
2016/12/30 全球购物
《我要的是葫芦》教学反思
2014/02/23 职场文书
人事部专员岗位职责
2014/03/04 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
红色经典电影观后感
2015/06/18 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
2019同学聚会主持词
2019/05/06 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
php引用传递
2021/04/01 PHP
mysql数据库入门第一步之创建表
2021/05/14 MySQL
如何有效防止sql注入的方法
2021/05/25 SQL Server
go语言中http超时引发的事故解决
2021/06/02 Golang
Nginx的gzip相关介绍
2022/05/11 Servers