Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么在自动加载函数上使用自动加载类?_Php - Fatal编程技术网

Php 为什么在自动加载函数上使用自动加载类?

Php 为什么在自动加载函数上使用自动加载类?,php,Php,PHP有一个内置的自动加载器寄存器spl_autoloader_register(),您可以在其中编写自己的自动加载器函数,就像我在下面所做的那样(您可以想到的任何改进都会很有帮助): 但我开始研究其他代码,发现人们使用autoloader类而不是内置的PHP autoloader函数:这是为什么?来自: 提示spl_autoload_register()为自动加载类提供了更灵活的选择。因此,不鼓励使用_autoload(),将来可能会被弃用或删除 因此,答案实际上是,你正在以推荐的方式做这

PHP有一个内置的自动加载器寄存器spl_autoloader_register(),您可以在其中编写自己的自动加载器函数,就像我在下面所做的那样(您可以想到的任何改进都会很有帮助):


但我开始研究其他代码,发现人们使用autoloader类而不是内置的PHP autoloader函数:这是为什么?

来自:

提示spl_autoload_register()为自动加载类提供了更灵活的选择。因此,不鼓励使用_autoload(),将来可能会被弃用或删除

因此,答案实际上是,你正在以推荐的方式做这件事。您正在查看的代码可能是遗留代码,因为在
spl\u autoload\u register()
之前就有了
\u autoload()

请注意,如果您希望尽可能使用OO,也可以使用静态类函数进行自动加载:

class MyClass {
    static function myloader($name) {
        require_once($name.'.php');
    }
}
spl_autoload_register('MyClass::myloader');

即使有人正在使用autoloader对象,它仍然使用内置的autoloader函数进行注册,因此它不是“代替”。
class MyClass {
    static function myloader($name) {
        require_once($name.'.php');
    }
}
spl_autoload_register('MyClass::myloader');