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 文件夹下寻找,类名与文件名完全一致。

最新文章

  1. UItableview 添加 uisearchController
  2. swift_简单值 | 元祖 | 流程控制 | 字符串 | 集合
  3. TCP UDP 协议的区别和联系
  4. WIFI驱动的移植 realtek 8188
  5. cd dirname $0
  6. ps插件安装
  7. timersmanager 解析
  8. jQuery实例—选项卡(js源码和jQuery)【一些常见方法(1)-练习】
  9. php——composer 1、安装使用
  10. 转:常用的HTML标签和属性解释
  11. hdu1824(two-sat)
  12. 【MySQL】(4)操作数据表中的记录
  13. fastboot模式
  14. 领域驱动设计和Spring
  15. Meterpreter命令详解
  16. dotnetcore-officeaddin-toolbox : Office 365 Add-in开发人员的工具箱
  17. 关于MVC RouteExistingFiles疑问后续
  18. 【F12】chrome浏览器中 F12 功能的简单介绍
  19. [PC]两个蓝牙耳机同时输出相同音源
  20. [IR] Concept Search and PLSA

热门文章

  1. Word2010初识
  2. axios导出 excel
  3. dart系列之:手写Library,Library编写最佳实践
  4. spring-data-jpa ----OneToMany 一对多
  5. Discuz!X ≤3.4 任意文件删除漏洞
  6. 【摘抄】疑问chatterbot
  7. gorm链接mysql的初始化配置和连接池的使用
  8. gin中设置和获取cookie
  9. vue中清除路由缓存
  10. Android开发之打包apk