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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
也谈php网站在线人数统计
Apr 09 PHP
php mysql数据库操作分页类
Jun 04 PHP
PHP开发中常用的字符串操作函数
Feb 08 PHP
php设计模式 Interpreter(解释器模式)
Jun 26 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
PHP中使用asort进行中文排序失效的问题处理
Aug 18 PHP
PHP中开启gzip压缩的2种方法
Jan 31 PHP
PHP学习笔记之session
May 06 PHP
PHP数组常用函数实例小结
Aug 20 PHP
Laravel框架实现的批量删除功能示例
Jan 16 PHP
PHP使用递归按层级查找数据的方法
Nov 10 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中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
Javascript调用C#代码
2011/01/17 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
深入理解requestAnimationFrame的动画循环
2016/09/20 Javascript
JavaScript常见的五种数组去重的方式
2016/12/15 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
vue中watch的用法汇总
2020/12/28 Vue.js
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python实现的金山快盘的签到程序
2013/01/17 Python
详解python3实现的web端json通信协议
2016/12/29 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
pytorch下大型数据集(大型图片)的导入方式
2020/01/08 Python
什么是python的自省
2020/06/21 Python
浅析Python中字符串的intern机制
2020/10/03 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
conda安装tensorflow和conda常用命令小结
2021/02/20 Python
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
意大利网上药房:Farmacia 33
2020/01/27 全球购物
网管求职信
2014/03/03 职场文书
初二学习计划书范文
2014/04/27 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
鲁滨孙漂流记读书笔记
2015/06/30 职场文书