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开发文件系统实例讲解
Oct 09 PHP
杏林同学录(九)
Oct 09 PHP
Php连接及读取和写入mysql数据库的常用代码
Aug 11 PHP
ThinkPHP 表单自动验证运用示例
Oct 13 PHP
PHP中绘制图像的一些函数总结
Nov 19 PHP
php开发工具有哪五款
Nov 09 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
Feb 25 PHP
PHP微商城开源代码实例
Mar 27 PHP
Laravel框架处理用户的请求操作详解
Dec 20 PHP
PHP实现递归的三种方法
Jul 04 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
phpmyadmin操作流程
2006/10/09 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
一直复略了的一个问题,关于表单重复提交
2007/02/15 Javascript
JavaScript 程序编码规范
2010/11/23 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
2014/09/22 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
jQuery中值得注意的trigger方法浅析
2016/12/12 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
2020/09/04 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
Python Socket编程详细介绍
2017/03/23 Python
python实现图片彩色转化为素描
2019/01/15 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
linux 下selenium chrome使用详解
2020/04/02 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
深入探究HTML5的History API
2015/07/09 HTML / CSS
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
初中生期末考试的自我评价
2013/12/17 职场文书
对祖国的寄语大全
2014/04/11 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
小学教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014年营销工作总结
2014/11/22 职场文书
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技
详解如何使用Nginx解决跨域问题
2022/05/06 Servers