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 相关文章推荐
使用 php4 加速 web 传输
Oct 09 PHP
一键删除顽固的空文件夹 软件下载
Jan 26 PHP
php IP转换整形(ip2long)的详解
Jun 06 PHP
遭遇php的in_array低性能问题
Sep 17 PHP
PHP错误和异长常处理总结
Mar 06 PHP
PHP实现HTML生成PDF文件的方法
Nov 07 PHP
php中in_array函数用法分析
Nov 15 PHP
php文件上传类的分享
Jul 06 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
浅谈PHP中的那些魔术常量
Dec 02 PHP
PHP实现考试倒计时功能代码
Apr 16 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
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
php提取微信账单的有效信息
2018/10/01 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
Jquery Ajax学习实例3 向WebService发出请求,调用方法返回数据
2010/03/16 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
jQuery实现的五子棋游戏实例
2015/06/13 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
JavaScript组合模式学习要点
2016/08/26 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
农业大学毕业生的个人自我评价
2013/10/11 职场文书
党员自我评价分享
2013/12/13 职场文书
经销商订货会主持词
2014/03/27 职场文书
个人委托书范本
2014/04/02 职场文书
整顿机关作风心得体会
2014/09/10 职场文书
财务工作检讨书
2014/10/29 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
校长个人总结
2015/03/03 职场文书
小学国庆节活动总结
2015/03/23 职场文书
长江七号观后感
2015/06/11 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle