php spl_autoload_register 实现自动加载
spl_autoload_register
(PHP 5 >= 5.1.2, PHP 7)
spl_autoload_register — 注册给定的函数作为 __autoload 的实现
语法
bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )
说明
通过这个函数,可以为加载的类指定寻址方式,这样就不用大批量地 require
和 include
了。系统会自动按照指定的规则,到对应的位置下面去寻找需要实例化的类。虽然这个方法比较底层,在有框架的情况下,一般都不需要我们去做这些工作了。但是难免还是有要用的时候,比如我写这个博客的时候,我就自己需要捣腾脚本,这个时候,就绕不开了。下面的例子,就是我的脚本中要用的一个简单的自动加载的程序。
例子
spl_autoload_register(function ($class) {
$rootPath = realpath(sprintf('%s/..', __DIR__));
$paths = array(
'src',
);
foreach ($paths as $path) {
if (is_file(
$file = $rootPath . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $class . '.php'
)) {
include $file; break;
}
}
});
注意,匿名函数是 PHP 5.3 及以上
才可以用的,如果发现不能用,检查一下自己的 PHP 版本。我这里只是简单地指定所有的类在我的 src
文件夹下寻找,类名与文件名完全一致。
最新文章
- UItableview 添加 uisearchController
- swift_简单值 | 元祖 | 流程控制 | 字符串 | 集合
- TCP UDP 协议的区别和联系
- WIFI驱动的移植 realtek 8188
- cd dirname $0
- ps插件安装
- timersmanager 解析
- jQuery实例—选项卡(js源码和jQuery)【一些常见方法(1)-练习】
- php——composer 1、安装使用
- 转:常用的HTML标签和属性解释
- hdu1824(two-sat)
- 【MySQL】(4)操作数据表中的记录
- fastboot模式
- 领域驱动设计和Spring
- Meterpreter命令详解
- dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱
- 关于MVC RouteExistingFiles疑问后续
- 【F12】chrome浏览器中 F12 功能的简单介绍
- [PC]两个蓝牙耳机同时输出相同音源
- [IR] Concept Search and PLSA