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的QRcode类与大家分享
Nov 13 PHP
深入分析php之面向对象
May 15 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
Aug 10 PHP
php生成静态页面的简单示例
Apr 17 PHP
PHP统计目录大小的自定义函数分享
Nov 18 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
PHP永久登录、记住我功能实现方法和安全做法
Apr 27 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
Dec 02 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
Jun 11 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 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通用分页类page.php[仿google分页]
2008/08/31 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
JS中产生标识符方式的演变
2015/06/12 Javascript
JavaScript实现向右伸出的多级网页菜单效果
2015/08/25 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
基于node.js之调试器详解
2017/08/22 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
python的几种开发工具介绍
2007/03/07 Python
python实现批量监控网站
2016/09/09 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
利用python求解物理学中的双弹簧质能系统详解
2017/09/29 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
Python实现图片拼接的代码
2018/07/02 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
工地门卫岗位职责
2013/12/30 职场文书
中学教师管理制度
2014/01/14 职场文书
房屋出售协议书
2014/04/10 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python