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
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
Dec 18 PHP
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
PHP独立Session数据库存储操作类分享
Jun 11 PHP
PHP 使用redis简单示例分享
Mar 05 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
PHP中你应该知道的require()文件包含的正确用法
Jun 12 PHP
php求数组全排列,元素所有组合的方法
May 05 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
php无限级评论嵌套实现代码
Apr 18 PHP
PHP getNamespaces()函数讲解
Feb 03 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 编写的日历
2006/10/09 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
IE中createElement需要注意的一个问题
2010/07/13 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
Nodejs监听日志文件的变化的过程解析
2019/08/04 NodeJs
Python中使用logging模块打印log日志详解
2015/04/05 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
如何基于python实现画不同品种的樱花树
2020/01/03 Python
Python使用xpath实现图片爬取
2020/09/16 Python
浅谈python 类方法/静态方法
2020/09/18 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
性能服装:HYLETE
2018/08/14 全球购物
英国经济型酒店品牌:Travelodge
2019/12/17 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
高中生学期学习自我评价
2014/02/24 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
公务员的复习计划书,请收下!
2019/07/15 职场文书
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库