当前位置:首页 > 日记 > 正文

在PHP的总结spl_autoload_register函数的用法

在PHP的总结spl_autoload_register函数的用法
spl_autoload_register
(PHP > = 5 5.1.2)
spl_autoload_register注册__autoload()函数

解释
布尔spl_autoload_register({回调autoload_function美元})
该功能是在SPL __autoload函数堆栈注册。如果在栈的功能没有被激活,被激活。
如果__autoload功能已经在你的程序中实现的,它必须在__autoload stack.because明确注册
的spl_autoload_register()函数将取代在Zend引擎的__autoload功能spl_autoload()或
spl_autoload_call()。
参数
autoload_function
自动加载功能,拟注册。如果没有提供参数,对加载默认的实现功能的自动注册
spl_autoload()。
返回值
如果成功,返回true,并且不能返回false。

注:SPL标准PHP库的缩写(标准PHP库),它是一个扩展库介绍了PHP5,其主要功能包括自动加载机制和各种迭代器接口或类列入实施。SPL的加载机制的实现是通过与自动加载功能,分功能指针autoload_func自身implementation.spl功能实现了两者的不同功能,spl_autoload和spl_autoload_call,实施不同的自动加载机制autoload_func指出这两种不同的函数地址。

例子
让我们有一个类文件,A.php,它定义了一个类命名:
< PHP
班上的一个
{
公共功能__construct()
{
echo'got它。;
}
}

< PHP
班上的一个
{
公共功能__construct()
{
echo'got它。;
}
}
然后我们有一个编辑,需要使用类的一种,传统的写作方式
< PHP
要求('a.php);
美元=新的A();

< PHP
要求('a.php);
美元=新的A();

但问题是,如果我们的index.php需要包含超过一个,它需要很多的课,所以我们要写很多行需要的报表,有时会让人感觉不好。

但在PHP5的版本,我们不需要做了。在PHP5,的__autoload函数被调用时自动尝试使用未定义的类,所以我们可以让PHP自动加载类的而不是写了一长串的包含文件__autoload功能写作。

例如,在上面的例子中,是可以这样写:

< PHP
功能__autoload(合班)
{
$;
如果(is_file(文件)){
require_once(文件);
}
}

美元=新的A();

< PHP
功能__autoload(合班)
{
$;
如果(is_file(文件)){
require_once(文件);
}
}

美元=新的A();
当然,以上是最简单的演示。__autoload只是include_path找到类文件和加载。我们可以定义__autoload加载类的规则,根据自己的需要。

此外,如果我们不想调用的__autoload当我们想自动加载,而不是调用自己的函数(或类的方法),我们可以用spl_autoload_register登记自己的autoload函数,函数原型如下:
布尔spl_autoload_register({回调autoload_function美元})

我们继续重写上面的示例:

< PHP
函数加载器($类)
{
$;
如果(is_file(文件)){
require_once(文件);
}
}

spl_autoload_register('loader);

美元=新的A();

< PHP
函数加载器($类)
{
$;
如果(is_file(文件)){
require_once(文件);
}
}

spl_autoload_register('loader);

美元=新的A();
这也可以正常运行,当PHP不叫__autoload当寻找一类,而是调用我们定义,装载机的功能。以同样的方式,下面的文字也可能。
< PHP
类装载器
{
公共静态函数loadClass(合班)
{
$;
如果(is_file(文件)){
require_once(文件);
}
}
}

spl_autoload_register(阵列('loader ','loadclass '));

美元=新的A();

相关文章

Linux后缀名为Ko,O,A,所以,La

Linux后缀名为Ko,O,A,所以,La

后缀,电脑软件,Linux,La,Ko,注释:我们知道Linux下的文件类型不依赖于Windows的后缀名,而后缀名在Linux下是可有可无的。 但是为了区别起见,一些文件被添加到后缀名中: 1、Ko是内核对象的缩写,Linux 2.6内核使用的一个动态连接文件,Linux系统启动…

Linux实用程序的命令行详细信息

Linux实用程序的命令行详细信息

实用程序,命令行,详细信息,电脑软件,Linux,注释:这是一个真实的事实,许多IT专业人员使用Linux命令行,即使GUI是可用的。嘿,我们的第一个Linux命令行指南有超过5万次点击,但是让我们来听一个IT专家的理由。在这种情况下,我们听David Witham的原因,…

如何在快速快速的网络任务中恢复/

如何在快速快速的网络任务中恢复/

检索,网络,恢复,快速,如何在,问题: 我的xp是重装系统。Nora是一部保存在网络任务中的好电影。它已被发送到E盘。从360开始,在E盘中找到了大文件。开幕后,没有电影。电影肯定是在,但它不在那里,你是怎么恢复的谢谢你的解答。 答案uff1a 根据您…

wwsecure是wwsecure.exe-过程

wwsecure是wwsecure.exe-过程

过程,电脑软件,wwsecure,exe,评论:wwsecure.exe - wwsecure过程 进程文件:wwsecure或wwsecure.exe 进程名称:Webroot的窗口洗衣机 过程类别:安全风险的过程 英文描述: wwsecure.exe是与Webroot的窗口洗衣机中的应用相关的过程,窗口,也被称为对与…

什么过程kavmm过程查询kavmm.exe是

什么过程kavmm过程查询kavmm.exe是

查询,过程,电脑软件,kavmm,exe,评论:详细的介绍了kavmm.exe - kavmm过程 进程文件:kavmm或kavmm.exe 过程名称:卡巴斯基反病毒模块 过程类别:安全风险的过程 英文描述: kavmm.exe是与卡巴斯基反病毒专业5相关的过程。这,亲,它也被称为是非。 中…

wkqkpick.exe过程是怎样的

wkqkpick.exe过程是怎样的

的是,过程,是怎样,电脑软件,wkqkpick,评论:对wkqkpick.exe工艺简介 进程文件:wkqkpick或wkqkpick.exe 进程名称:WinZip:图标 过程类别:安全风险的过程 英文描述: wkqkpick.exe是WinZip:图标,提供快速访问,快速,它也被称为正确的方法。 中文参考: wkq…

什么文件是PGF和如何删除PGF格式文

什么文件是PGF和如何删除PGF格式文

文件,删除,文件删除,格式文件,电脑软件,核心提示:对于一个1G大小的ppsds.pgf文件在硬盘分区的原因是你使用最新版本的PPStream点播,ppsds.pgf的功能主要是用于缓冲需求的需求,使缓冲时间更短,打开点播视频更快。如果你是安全的… 对于一个1G大…

如何删除QQ聊天记录以保护个人隐私

如何删除QQ聊天记录以保护个人隐私

删除,聊天记录,个人隐私,电脑软件,QQ,如何删除QQ聊天记录 在公共场所使用QQ时,必须删除QQ聊天记录,并将一些敏感的个人隐私数据交到不法分子手中,如何删除QQ聊天记录有几种方法可以删除QQ聊天记录。 1。删除QQ聊天记录与指定朋友 点击QQ客户端…

的Win8.1系统提示IE停止工作的问题

的Win8.1系统提示IE停止工作的问题

系统,解决方案,提示,两种,工作,点评:本文主要阐述了IE的停止工作对于Win8.1的问题,这主要表现在Windows 8.1。当打开IE10,说明Internet Explorer已停止工作。让我们看看Win8.1 IE停止工作的详细方案一看。 Windows 8的IE10出现Internet Explor…

Word2003中删除文档创建者的个人信

Word2003中删除文档创建者的个人信

删除,文档,创建者,个人信息,电脑软件,在Word软件中,只要你在计算机上创建并制作一个word文档,你就必须有你的信息和信息,如果你不想让别人知道你创建的文档,或者修改跟踪,我该怎么办事实上,Word已经有了这个功能,您可以轻松地删除您的信息。 打开W…

我不想收到QQ空间动态更新的QQ空间

我不想收到QQ空间动态更新的QQ空间

空间,动态更新,我不想,电脑软件,QQ,如果您的空间动态不想显示好友空间更新的内容,您可以参考以下两种操作方法: 方法一:取消对朋友的关注; 登录你的QQ空间,在导航栏点击' ';个人中心;在屏幕右侧点击右';设置'图标'; 选择&lsquo;注重树立'朋友;…

一种快速分类WPS表的方法

一种快速分类WPS表的方法

方法,分类,快速,电脑软件,WPS,我们经常在WPS表中使用和函数,我们经常使用自动筛选来分类信息,如图。 当我们按建设项目的性质来筛选新项目时,总投资仍然是所有项目的总投资额。如果我们只需要计算新项目的总投资额,那么总和就无能为力了。 在…