PHP autoload使用方法及步骤详解


Posted in PHP onSeptember 05, 2020

我们知道在PHP4里面,当我们使用一个类的时候,必须将该类所以文件使用include或require加进来,这样我们就可以使用类了。
而对于PHP5来说也可以使用在PHP4里面的方式,将类文件包进来,但当有了__autoload之后,这种情况就可以靠编写规则也实现。

以下代码:

<?php
 $obj_A = new clsA();
 $obj_B = new clsB();
 ?>
 PHP4下正确写法为:
 <?php
 //PHP4 写法,之前必须加载类文件
 include_once "cls/clsA.php";
 include_once "cls/clsB.php";
 $obj_A = new clsA();
 $obj_B = new clsB();
 ?>

处理加载步骤为:

1,加载类文件。

2,实例化类。

PHP5下使用__autoload()(自动加载)的正确写法为:

<?php
 // PHP5 Used __autoload function
 $obj_A = new clsA();
 $obj_B = new clsB();
 function __autoload($className){
 include_once "cls/$className.php";
 }
 ?>

处理加载步骤为(使用autoload函数):

1,创建对象(伪实例)

2,调用__autoload函数,将伪实例的类名传入

3,使用__autoload函数中,预先写好的加载规则进行加载类文件

4,实例化对象(真实实例)

因此,我们可以看出,对于PHP5的autoload函数,必须给定规则,否则一点用没有。

对于PHP5的__autoload函数的使用时需要注意或完成如下事情。

1,__autoload函数是用在类外面,而不是在类里面的函数。(__autoload也是被PHP5保护的关键字之一)

2,完成对__autoload函数加载规则的编码。

如上,当知道A是在cls目录中,而B是在cls/cls目录中。则编写__autoload加载规则就是必要的。

<?php
 // PHP5 Used __autoload function
 $obj_A = new clsA(); // in "cls" directory!
 $obj_B = new clsB(); // in "cls/cls" directory!
 function __autoload($className){
 if(strtolowwer($className) == "clsb"){
 require_once "cls/cls/$className.php";
 }else{
 include_once "cls/$className.php";
 }
 }
 ?>

总结:因此,对于PHP5的autoload来说,当加载2个以上的文件或考虑到以后的扩展时或代码规范来说可以使用,对于一般的情况,我个人认为没有必 要,但是如果同时使用多个类,加载不同的类文件,对于autoload来说就有必要,只要写入相应的加载规则即可。(我个人认为,该函数的提出,主要是规 范编码)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php基础知识:类与对象(4) 范围解析操作符(::)
Dec 13 PHP
php入门学习知识点五 关于php数组的几个基本操作
Jul 14 PHP
PHP下判断网址是否有效的代码
Oct 08 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
Aug 21 PHP
thinkPHP的Html模板标签使用方法
Nov 13 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 PHP
PHP微信红包API接口
Dec 05 PHP
CI框架常用方法小结
May 17 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
PHP封装的简单连接MongoDB类示例
Feb 13 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 PHP
php去除deprecated的实例方法
Nov 17 PHP
PHP数组访问常用方法解析
Sep 05 #PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 #PHP
php使用Swoole实现毫秒级定时任务的方法
Sep 04 #PHP
Laravel Reponse响应客户端示例详解
Sep 03 #PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 #PHP
PHP copy函数使用案例代码解析
Sep 01 #PHP
PHP超全局变量实现原理及代码解析
Sep 01 #PHP
You might like
常用的php ADODB使用方法集锦
2008/03/25 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
javascript call方法使用说明
2010/01/11 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
javascript中常用编程知识
2013/04/08 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
浅析JS原型继承与类的继承
2016/04/07 Javascript
url中的特殊符号有什么含义(推荐)
2016/06/17 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
2019/03/28 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
python中必要的名词解释
2019/11/20 Python
如何理解Python中包的引入
2020/05/29 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
J2EE面试题
2016/03/14 面试题
团代会主持词
2014/04/02 职场文书
工程承包协议书
2014/10/20 职场文书
音乐之声观后感
2015/06/04 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers