9

我一直在阅读有关spl_autoload_register替代require, require_once, include, &的功能include_once。尽管有很多关于如何实现这一点的讨论,但文档并不太详细,也没有解释它与原始方式相比有何好处。

参考: http: //php.net/manual/en/function.spl-autoload-register.php

我想知道如何spl_autoload_register工作?

使用时有性能差异spl_autoload_register吗?

它如何处理交叉链接类中的许多 require 语句(超过 20 个)?(这不会导致重复要求吗?)

4

1 回答 1

8

我从来没有测试过(也没有担心过)性能,但我总是使用自动加载器,因为它让你的生活变得更轻松。

有关实现,请参见:https ://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

发生的情况是,当您尝试访问Foo尚未加载文件的类时。自动加载器将启动并尝试加载属于该类的文件。

这可以通过“正确”组织项目中的文件来轻松完成。假设您有一个类\Project\Http\Client(或“旧样式”非命名空间Project_Http_Client),它将尝试加载文件:Project/Http/Client.php.

于 2012-08-06T16:12:53.757 回答