最新消息:

简述PHP类自动加载机制

PHP 393浏览 0评论

 PHP自动加载机制有两种实现方式:

    一种是重写 function __autoload(){} 方法,这种方法在PHP7中已经被弃用,强制使用会提示以下错误:

PHP Deprecated:  __autoload() is deprecated, 
use spl_autoload_register() instead in D:\WWW\study\test\autoload\demo.php on line 2

报错信息说的是 PHP 已经弃用 __autoload() 函数,并且是使用 spl_autoload_register() 函数进行替代。

    另一种实现类的自动加载就是上面说的 使用 spl_autoload_register() 函数实现,通过查看官方文档查看具体定义方式:

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

参数说明:

autoload_function:

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

    这是一个函数【方法】名称,可以是字符串或者数组(调用类方法使用)。这个函数(方法)的功能就是,来把需要new 的类文件包含include(requeire)进来,这样new的时候就不会找不到文件了。其实就是封装整个项目的include和require功能。

throw:

    此参数设置了 autoload_function 无法成功注册时,spl_autoload_register() 是否抛出异常。

prepend:

    如果是true,spl_autoload_register() 会添加函数到队列之首,而不是队列尾部。

返回值:

    成功是true, 失败是 false。

举个例子:

function my_autoloader($className)
{
    include 'classes/'.$className . '.class.php';
}

spl_autoload_register('my_autoloader');

spl_autoload_register(function($className){
    include 'classes/'.$className . '.class.php';
});


转载请注明:微刻 blog.wecot.cn » 简述PHP类自动加载机制

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址