php之自动加载(懒加载)
有A类和B类,如果在A类实例化B类,最简单直接的方法就是在B中使用include require_once A的文件,但是这种方法显然是不友好的,在框架中叶不是这么做的,在框架中使用的是自动加载的机制也成为懒加载。
php中自动加载使用spl_autoload_register来完成在没有指定类的情况下自动加载的动作,有了这个方法在new一个类之前,就算没有引入这个类的文件,也能正确初始化指定类,这样我们就不用使用include require_once来引入文件,其实这个方法就是对include方法的封装,同时需要自己实现。下面举个?,并说明其原理
下面这段是autolod.php的源码:
1 <?php 2 spl_autoload_register(array('autoload','load')); 3 class autoload{ 4 public static function load($classnName){ 5 if ( !class_exists($classnName) ) { 6 $file = $classnName.'.php'; 7 require_once('./'.$file); 8 9 } 10 } 11 } 12 $class = new autoload_test(); 13 $class->test();
下面这段是autolod_test.php的源码:
1 <?php 2 class autoload_test{ 3 function test(){ 4 echo 'this is test'; 5 } 6 }
代码很简单,但是足以说明spl_autoload_register自动加载的机制,在代码执行的过程中,当new一个未包含的类的时候,php会去执行spl_autoload_register中的第一个参数,就是需要new的类名,这个函数的功能就是把没有引入的类引入进来,但是有个前提就是类的名字和文件的名字要一致,这样就实现了自动加载的功能,是不是很简单。
spl_autoload_register这个方法还有另一种常用的调用方式spl_autoload_register(array($className,$functionName));使用指定的类中的静态方法去完成自动加载,静态方法里面的结构就是完成autoload里面的逻辑。
转载于:https://www.cnblogs.com/zzq919101/p/10458106.html
php之自动加载(懒加载)相关推荐
- html 分页 惰性加载,懒加载实现的分页网站footer自适应
最近在做手机端,发现下拉刷新和上拉加载的jq控件很少而且自我感觉不好用,比如iscroll之类-- 然后自己写了个懒加载的,也很简单,最基础的代码[不喜勿喷,但蛮实用的] wap手机端懒加载分页: 用 ...
- Vue7 异步加载 懒加载
vue开发过程中,我们会做出特别多特别多的组件,包括login,header,footer,main等等.这样使整个网站看起来就十分的庞大,当我们在打开网页的时候,突然一下子把这些所有的组件加载上来, ...
- Entity Framework Core 懒加载
众所周知在EF 6 及以前的版本中,是支持懒加载(Lazy Loading)的,可惜在EF Core 并不支持,必须使用Include方法来支持导航属性的数据加载.不过现在EF Core的开发团队打算 ...
- 源码-03-九宫格 封装 懒加载 plist
九空格雏形-- 每一行的列数,行间距,列间距 %决定了列数,/决定了行数.->来计算每个格子的x和y的位置: 1 #import "ViewController.h" 2 3 ...
- 【Android】Fragment懒加载和ViewPager的坑
本篇文章已授权微信公众号 安卓巴士Android开发者门户 独家发布 效果 老规矩,先来看看效果 ANDROID和福利两个Fragment是设置的Fragment可见时加载数据,也就是懒加载.圆形的旋 ...
- 前端性能优化总结/懒加载、函数节流、优化dom操作、雪碧图、合并文件
1.减少 HTTP 请求数量 在浏览器与服务器进行通信时,主要是通过 HTTP 进行通信.浏览器与服务器需要经过三次握手,每次握手需要花费大量时间.而且不同浏览器对资源文件并发请求数量有限(不同浏览器 ...
- 聊一聊前端图片懒加载背后的故事
本文内容 什么是懒加载 如何实现懒加载 监听滚动事件 IntersectionObserver 浏览器原生方案 本文小结 相信大家已经注意到我博客有了一点变化,因为博主最近利用空闲时间对博客进行了优化 ...
- 图片预加载与图片懒加载
图片预加载与图片懒加载 图片预加载 图片预加载主要是针对非icon类图片. 加载快,有良好的用户体验. 提前加载图片,当用户需要查看时可直接从本地缓存中渲染.可能因为图片很大,浏览器显示出它会用很长的 ...
- html如何实现页面懒加载,原生JS如何实现图片懒加载
懒加载简介 什么是图片懒加载 懒加载其实就是延迟加载,是一种对网页性能优化的方式,比如当访问一个页面的时候,优先显示可视区域的图片而不一次性加载所有图片,当需要显示的时候再发送图片请求,避免打开网页时 ...
- 高级技巧!Python装饰器里面的懒加载,真香!
摄影:产品经理 禁止钓鱼 假设我们有一个工具类MongoUtil,它的作用是封装一些数据库操作.例如: import pymongoclass MongoUtil:def __init__(self) ...
最新文章
- Java之String类
- pacman安装ubuntu_Ubuntu如何安装pacman
- syslog 向内存中缓存_漫谈缓存(Cache)、大规模芯片系统的存储层次结构优化以及开源仿真工具ZSim...
- pyecharts 应用6 三维曲面图
- CSS3动画---移动端上下固定高度,中间自适应
- Selenium两万字大题库
- java 保留字符串,如何在Java中保留字符串而不使用反转功能
- Eclipse使用SVN操作说明
- Warning:mailcious javascript detected on this domain来由
- uniapp 自定义头部 支持微信、百度、头条小程序
- 【论文随笔5】Context-Aware Transformer Transducer for Speech Recognition
- TPSHOP商城软件测试环境搭建过程
- 2022-04-13 Ambient Light Proximity Sensor 光感和距离传感器 STK3311X调试记录 RK3566 Android11平台
- 巴菲特经典演讲《价值投资为什么能够持续战胜市场》
- 华师大 OJ 3023
- Errorcode? Thread1: EXC_BAD_ACCESS (code=EXCi386_GPFLT)
- 大学生python期末解答题_大学mooc2020年用Python玩转数据期末考试大全答案
- 为什么要禁止除GET和POST之外的HTTP方法?
- CF808E Selling Souvenirs
- 孙正义:未来30年的人工智能和物联网
热门文章
- spring手动配置
- 【BZOJ4591】[SHOI2015]超能粒子炮·改 (卢卡斯定理)
- 吃大小写的亏,上符号的当
- CYQ.Data V5 从入门到放弃ORM系列:教程 - MAction类使用
- SSL:Ubuntu证书配置
- 一 ASP.NET Html 表单
- uva 12426 Counting Triangles 计算几何
- 分享我第一次做项目的感受
- qhfl-3 Course模块
- python车辆轨迹分析_Ngsim数据集分析与python处理,NGSIM,解析,及