PHP自动加载功能的由来
在PHP开发过程中,如果希望从外部引入一个 class,通常会使用 include 和 require 方法,去把定义这个 class 的文件包含进来。这个在小规模开发的时候,没什么大问题。但在大型的开发项目中,使用这种方式会带来一些隐含的问题:如果一个 PHP 文件需要使用很多其它类,那么就需要很多的 require/include 语句,这样有可能会造成遗漏或者包含进不必要的类文件。如果大量的文件都需要使用其它的类,那么要保证每个文件都包含正确的类文件肯定是一个噩梦, 况且 require_once 的代价很大。
<?php
use App\loging; //1:使用use加载命名空间app下的loging.php 但是use并不会帮你引入该类
spl_autoload_register(function ($class_name) {
print __DIR__.'/'.$class_name.".php"; //php文件路径
require_once __DIR__.'/'.$class_name.".php";//3:引入该php文件 $class_name自动获取被调用类的名称
});
loging::demo();//2:调用loging类的demo方法 因为该类并未引入 将会执行spl_autoload_register函数的方法
?>
图解:
版权属于:尹深
本文链接:https://cloud.tencent.com/developer/article/1795037
转载时须注明出处及本声明
(本站部分资源来自互联网收集整理!如有侵权请联系站长删除!!!)