php 5.2 spl_autoload_register,PHP 中的__autoload() 与spl_autoload_register()函数
__autoload()函数可以实现自动加载所需要的类
用法:
__autoload() 在实例化对象时,若没有引入相关的文件,就会自动调用这个方法来进行加载。
实例:
public function __autoload($className)
{
$actionPath ="E://project/LiB/Action/".$className.".class.php";
if(!file_exists($actionPath))
{
echo $actionPath."路径不存在";
}
require_once($actionPath);
}
spl_autoload_register()函数
作用:注册自定义加载函数
比如在文件中定义一个 loadfile()作为自定义加载函数,但是至少声明或者定义这个函数后,在实例化对象时,程序并不会自动去运行loadfile()这个函数,而会自动运行__autoload()函数。而spl_autoload_register()函数就是让程序在实例化一个对象时组自动调用loadfile()函数。
实例:
class test
{
public function testLoad()
{
echo "这是test类中的testLoad方法";
}
}
?>
spl_autoload_register(array("AutoLoad", "autoLoadCore"), '', true); //注册自动加载方法
//定义自定义加载函数
public static function autoLoadCore($classname)
{
$classPath = "E://project/LiB/Action/".$className.".class.php";
if(!file_exists($classPath))
{
echo $classPath."路径不存在";
}
require_once($classPath);
}
$test = new test();
$test->testLoad();
?>
结果: 输出:这是test类中的testLoad方法;
spl_autoload_register()有三个参数
第一个:array($classname,$method),是一个数组,数组有两个元素,第一个元素表示自动加载方法所在的类,第二个表示自动加载方法的函数名
第二个参数:表示无法成功注册时是否抛出异常,true/false
第三个参数:true/false,表示是否将函数注册到自动加载函数队列之首。
注意:1、spl_autoload_register()实际上创建了 autoload 函数的队列,按定义时的顺序逐个执行(至今我没有成功实现逐个执行的功能,请各位指点)
2、若使用spl_autoload_register()注册了新的自动加载函数,那么原有的__autoload()函数将失效,若需使用__autoload()函数,需要通过spl_autoload_register()再次注册__autoload()函数,方能在使用此函数
php 5.2 spl_autoload_register,PHP 中的__autoload() 与spl_autoload_register()函数相关推荐
- spl_autoload_register 注册自己的自动加载函数(__autoload())
说明: PHP实例化没有加载的类的,会自动调用__autoload();函数加载,可以通过__autolaod()函数来require类,解决很多类,多次require的问题, 可以通过spl的标准P ...
- 如何在sqlite3连接中创建并调用自定义函数
#!/user/bin/env python # @Time :2018/6/8 14:44 # @Author :PGIDYSQ #@File :CreateFunTest.py '''如何在sql ...
- WinCE中串口驱动及接口函数介绍(转载)
作者:ARM-WinCE 在WinCE中,串口驱动实际上就是一个流设备驱动,具体架构如图: 串口驱动本身分为MDD层和PDD层.MDD层对上层的Device Manager提供了标准的流设备驱动接口( ...
- Dictionary作为数据源绑定,调用c++库中返回为BYTE*的函数,listView项排序
最近在做一个电子档案管理的项目.现在还处于初期,只是做一个简单demo拿去跟客户演示.至于最后谈不谈得下来,到底做不做,反正我是不看好,但没因为这样就马马虎虎.草草了事.这个项目算是b/s加c/s混合 ...
- R语言笔记6:在R中写一些简单的函数、functions基础和作用域
R语言基础系列: 1数据类型(向量.数组.矩阵. 列表和数据框) 2读写数据所需的主要函数.与外部环境交互 3数据筛选--提取对象的子集 4向量.矩阵的数学运算 5控制结构 Your first R ...
- pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)
pandas将列表list插入到dataframe的单元格中.pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes) 目录
- R语言使用str_locate函数和str_locate_all函数来定位特定字符串或者字符串模式在字符串中的位置:str_locate函数第一个位置、str_locate_all函数定位所有位置
R语言使用str_locate函数和str_locate_all函数来定位特定字符串或者字符串模式在字符串中的位置:str_locate函数第一个位置.str_locate_all函数定位所有位置 目 ...
- pandas使用replace函数替换dataframe中的值:replace函数对dataframe中的多个值进行替换、即一次性同时对多个值进行替换操作
pandas使用replace函数替换dataframe中的值:replace函数对dataframe中的多个值进行替换.即一次性同时对多个值进行替换操作 目录
- R语言计算F1评估指标实战:F1 score、使用R中caret包中的confusionMatrix()函数为给定的logistic回归模型计算F1得分(和其他指标)
R语言计算F1评估指标实战:F1 score.使用R中caret包中的confusionMatrix()函数为给定的logistic回归模型计算F1得分(和其他指标) 目录
- pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换、替换具体数据列的相关值
pandas使用replace函数替换dataframe中的值:replace函数对dataframe中指定数据列的值进行替换.替换具体数据列的相关值 目录
最新文章
- AlphaGo“兄弟”AlphaFold出世,DeepMind再创记录
- 【有奖征文】情人节,和书一起走过的日子
- html文本超出自动换行、显示省略号
- Rosonblatt线性感知器
- 信息学奥赛一本通 1308:【例1.5】高精除
- spring boot 整合Dubbo/Zookeeper
- 沙盒机制和应用程序目录
- 变电所自动化系统的电源配置
- Spring MVC处理响应的 header
- Android环境搭建配置问题(ZT)
- 一次追踪h5游戏中google广告的经历
- 第三篇--编译CM系统
- 海尔空调、新风系统加装wifi模块
- c语言课程设计三色球问题,C++三色球问题描述与算法分析
- MTI姿态传感器学习笔记
- 强化学习6——policy gradient的优化( Use temporal causality,Baseline and Critic)
- 绚丽的魔兽世界,广袤的艾泽拉斯大陆
- windows使用docker部署gitlab
- svn update冲突解决
- 从零开始学习D2-Admin,只要学习,任何时候都不晚!
热门文章
- centos6.8 开启透传
- RMAN 总括 组成 配置 检测
- M2M技术、标准与智慧城市顶层设计方法
- 利用遗传算法求解旅行商问题
- ButterKnife 8.6.0 使用
- idea添加scala环境_Scala(一)——scala+Idea环境配置
- Vue中常用的组件传值方式
- 分享几个vue后台模板
- android文字多行滚动显示,Android实现在TextView文字过长时省略部分或滚动显示的方法...
- PHPMailer 报错:SMTP ERROR: Password command failed: 535 Login Fail