环球科创网

2022年01月20日整理发布:详解PHP中类的自动加载

更新时间:2022-01-20 19:18:48

导读 让我们详细谈谈PHP中类的自动加载。相信朋友们也应该密切关注这个话题。现在,让我们为朋友们详细谈谈PHP中类的自动加载。边肖还详细收集了

让我们详细谈谈PHP中类的自动加载。相信朋友们也应该密切关注这个话题。现在,让我们为朋友们详细谈谈PHP中类的自动加载。边肖还详细收集了PHP中自动加载类的相关信息。我希望你看到后会喜欢。

推荐:《PHP视频教程》中类的自动加载

之前我们学习过Composer自动加载的原理,其实就是利用了PHP中类自动加载的特性。

PHP中类的自动加载主要依靠两种方法:_autoload和spl_autoload_register。

今天,让我们简单了解一下这两种方法的用法。

_ _自动加载是一种即将被淘汰的神奇方法。我们只需要知道。如果在PHP7中使用这个方法,一个过时的警告系统会建议我们使用spl_autoload_register方法。

函数_ _自动加载($ name){ 0

包括__DIR__。/autoload/'。$name。 class . PHP ';

}

$ autoA=新的AutO;

var _ dump($ AutoA);当我们实例化自动类时,当前文件没有这个类,也不包含或要求来自其他文件。此时会自动进入魔法_ _自动加载。我们只需要在__autoload方法中包含这个类所在的文件。

spl_autoload_register方法已经取代了上面提到的magic方法中自动加载类的功能。它是spl扩展库中的一个方法。spl扩展库现在默认集成在PHP中,每个人都可以放心地直接使用。

spl_autoload_register相对于__autoload的优势在于,它可以注册__autoload,并实现和维护__autoload队列。最初,一个文件中只有一个__autoload方法,但是现在有了一个队列。

这样,您不需要在一个__autoload方法中编写所有的加载代码,但是您可以使用多个spl _ autoload _寄存器来分别加载每个类。

spl_autoload_register(函数($ name){ 0

包括__DIR__。/autoload/'。$name。 class . PHP ';

});

$ autoA=新的AutO;

var _ dump($ AutoA);参考文献:深入研究作曲家的创作原则(二)

使用include或include_once在自动加载中,我们只需要使用include,类就不会被重复加载。

spl_autoload_register(函数($ name){ 0

包括__DIR__。/autoload/'。$name。 class . PHP ';

echo $名称,PHP _ EOL

});

$ autoA=新的AutO;

var _ dump($ AutoA);

$ autoA=新的AutO;

var _ dump($ AutoA);

$ autoA=新的AutO;

var _ dump($ AutoA);

$ AubT=新的AubT;

var _ dump($ AubT);我们可以从代码中看到美元;当类被实例化多次时,该名称只输出一次。因此,没有必要关心类文件重复加载的问题。而且在大型框架中使用composer时,会加载大量class _once方法,也会带来效率问题。

以上就是PHP中自动加载类的细节!

来源:php中文网站

免责声明:本文由用户上传,如有侵权请联系删除!