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 新手入门教程
Aug 03 PHP
php5.3 注意事项说明
Jul 01 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
Apr 21 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
php实现在站点里面添加邮件发送的功能
Apr 28 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
Nov 16 PHP
PHP JWT初识及其简单示例
Oct 10 PHP
Yii框架参数配置文件params用法实例分析
Sep 11 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 30 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/05/16 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
PHP连接MYSQL数据库实例代码
2016/01/20 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
jQuery使用each方法与for语句遍历数组示例
2016/06/16 Javascript
node.js利用redis数据库缓存数据的方法
2017/03/01 Javascript
Mac下安装vue
2018/04/11 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
pyqt5自定义信号实例解析
2018/01/31 Python
python 调用有道api接口的方法
2019/01/03 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
详解Python3 pandas.merge用法
2019/09/05 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
Python自带的IDE在哪里
2020/07/01 Python
荷兰皇家航空公司官方网站:KLM Royal Dutch Airlines
2017/12/07 全球购物
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
应届生求职信
2014/05/31 职场文书
2015年父亲节寄语
2015/03/23 职场文书
2015年外联部工作总结
2015/04/03 职场文书
《秋思》教学反思
2016/02/23 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
灵能百分百第三季什么时候来?
2022/03/15 日漫
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android