PHP spl_autoload_register实现自动加载研究


Posted in PHP onDecember 06, 2011

这里通过一个实验谈谈这个函数的部分特征。

函数原型
bool spl_autoload_register ([ callback $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )

版本兼容
PHP 5 >= 5.1.2

实验过程
第一步,使用spl_autoload_register()函数注册load()方法

<?php 
function load(){ 
require_once 'lib.php'; 
} 
spl_autoload_register('load'); 
?>

其中lib.php文件代码如下

<?php 
class className{ 
function method(){ 
echo 'a method in class'; 
} 
} function onlyMethod(){ 
echo 'method only'; 
} 
?>

说明:lib.php文件为一个className类和一个onlyMethod函数

第二步,调用自动加载类

$class = new className(); 
$class->method(); 
onlyMethod();

输出:
a method in class
method only

说明:实例化className类,并调用类method()函数,同时调用onlyMethod()方法,输出正常,没有出现错误

第三步,直接调用函数

onlyMethod();

说明:没有实例化类,直接调用lib.php文件中的onlyMethod()函数
输出:
Fatal error: Call to undefined function onlyMethod() in '...(省略路径)'

第四步,实例化className类,再直接调用

$class = new className();
onlyMethod();

输出:method only

从上面的四步实验发现,如果加载的文件包含函数,使用则一定需要实例化里面的类,否则就产生异常情况 Call to undefined function错误,具体在使用中要注意一下。

参与资料:spl_autoload_register

PHP 相关文章推荐
Array of country list in PHP with Zend Framework
Oct 17 PHP
PHP多进程编程实例
Oct 15 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
PHP使用CURL实现多线程抓取网页
Apr 30 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
Nov 30 PHP
php 数组字符串搜索array_search技巧
Jul 05 PHP
PHP精确计算功能示例
Nov 29 PHP
在php7中MongoDB实现模糊查询的方法详解
May 03 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
Apr 02 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
Dec 06 #PHP
PHP中文件缓存转内存缓存的方法
Dec 06 #PHP
php urlencode()与urldecode()函数字符编码原理详解
Dec 06 #PHP
PHP中实现中文字符进制转换原理分析
Dec 06 #PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 #PHP
PHP性能优化准备篇图解PEAR安装
Dec 05 #PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 #PHP
You might like
详细介绍PHP应用提速面面观
2006/10/09 PHP
PHP动态变静态原理
2006/11/25 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
基于jquery固定于顶部的导航响应浏览器滚动条事件
2014/11/02 Javascript
jquery制作 随机弹跳的小球特效
2015/02/01 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
玩转python爬虫之正则表达式
2016/02/17 Python
python迭代器与生成器详解
2016/03/10 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
python无序链表删除重复项的方法
2020/01/17 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
节水倡议书范文
2014/04/15 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
高中同学会活动方案
2014/08/14 职场文书
实验心得体会
2014/09/05 职场文书
软环境建设心得体会
2014/09/09 职场文书
2014年化验室工作总结
2014/11/21 职场文书
荆州古城导游词
2015/02/06 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
如何做好工作总结!
2019/04/10 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python