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将数据库中所有内容生成静态html文档的代码
Apr 12 PHP
PHP学习笔记之三 数据库基本操作
Jan 17 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
php简单浏览目录内容的实现代码
Jun 07 PHP
ubuntu下编译安装xcache for php5.3 的具体操作步骤
Jun 18 PHP
php事件驱动化设计详解
Nov 10 PHP
php微信公众号开发(3)php实现简单微信文本通讯
Dec 15 PHP
PHP实现的装箱算法示例
Jun 23 PHP
ThinkPHP框架实现的微信支付接口开发完整示例
Apr 10 PHP
PHP通过文件保存和更新信息的方法分析
Sep 12 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 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
mysq GBKl乱码
2006/11/28 PHP
PHP 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
PHP重定向的3种方式
2013/03/07 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php获取网页里所有图片并存入数组的方法
2015/04/06 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
2016/12/14 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
Vue列表页渲染优化详解
2017/07/24 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
详解Vue打包优化之code spliting
2018/04/09 Javascript
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
python内存管理分析
2015/04/08 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
Zookeeper接口kazoo实例解析
2018/01/22 Python
python交易记录链的实现过程详解
2019/07/03 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
python内置模块collections知识点总结
2019/12/19 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
python 线程的五个状态
2020/09/22 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
学生请假条格式
2014/04/11 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
党委工作总结2015
2015/04/27 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
《时代广场的蟋蟀》读后感:真挚友情,温暖世界!
2020/01/08 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
mybatis 获取无数据的字段不显示的问题
2021/07/15 Java/Android