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开启安全模式后禁用的函数集合
Jun 26 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
基于php socket(fsockopen)的应用实例分析
Jun 02 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
php超快高效率统计大文件行数
Jul 05 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
Oct 18 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 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 手机归属地查询 api
2010/02/08 PHP
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
php导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
php微信公众开发之获取周边酒店信息的方法
2014/12/22 PHP
PHP实现CSV文件的导入和导出类
2015/03/24 PHP
php利用事务处理转账问题
2015/04/22 PHP
php 生成签名及验证签名详解
2016/10/26 PHP
Laravel 之url参数,获取路由参数的例子
2019/10/21 PHP
Javascript之文件操作
2007/03/07 Javascript
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
7个JS基础知识总结
2014/03/05 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
avalon js实现仿google plus图片多张拖动排序附源码下载
2015/09/24 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
angular4应用中输入的最小值和最大值的方法
2019/05/17 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
原生js实现购物车
2020/09/23 Javascript
Python实现的一个简单LRU cache
2014/09/26 Python
Python去除字符串两端空格的方法
2015/05/21 Python
Python实现简单登录验证
2016/04/13 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
python 图像平移和旋转的实例
2019/01/10 Python
Python批量修改图片分辨率的实例代码
2019/07/04 Python
python中提高pip install速度
2020/02/14 Python
Python Django view 两种return的实现方式
2020/03/16 Python
python进度条显示之tqmd模块
2020/08/22 Python
师范应届生教师求职信
2013/11/05 职场文书
文明寝室申报材料
2014/05/12 职场文书
和谐社区口号
2014/06/19 职场文书
广告学专业求职信
2014/06/19 职场文书
大学生求职信例文
2014/06/29 职场文书
golang json数组拼接的实例
2021/04/28 Golang
Pandas-DataFrame知识点汇总
2022/03/16 Python