对spl_autoload_register简单理解

官方解释 http://php.net/manual/zh/function.spl-autoload-register.php

spl_autoload_register — 注册给定的函数作为 __autoload 的实现

bool spl_autoload_register ([ callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]] )

 

第一个参数 autoload_function 欲注册的自动装载函数。如果没有提供任何参数,则自动注册 autoload 的默认实现函数spl_autoload()

这个自定义装载函数,接受的参数,就是一个类名称,如果有命名空间的话 这个$className参数的值是: 命名空间/[子命名空间]/类名

 

spl_autoload_register 除了可以接一个函数名称,还可以接收一个类的方法spl_autoload_register(array('类名','方法名'))

自己定义的装在函数 需要三个步骤 找到需要的类文件

第一 :确定文件名

第二:确定文件路径

第三:包含这个文件

例子:这里例子有问题 只不过是个样子 明白怎么加载类文件就行了

spl_autoload_register(function ($className){
    
    //第一步确定文件名 第二部确定文件路径
    if ($lastNsPos=strripos($className,'\\'))
    {
        $namespace = substr($className, 0, $lastNsPos);
        $className = substr($className, $lastNsPos + 1);
        $filename = __DIR__.'\\'.$className.'.php';
    }
    require_once $filename;
});

 

 

posted @ 2016-07-02 17:46  pro-pro  阅读(164)  评论(0)    收藏  举报