PHP自动加载原理

 【前言】

   本文记录下PHP自动加载的原理和相关应用

 

【主体】

应用场景:

          实例化某个类时,如MySQL,需要先require()。如果类比较多,目录也就比较多,require引入文件时将显得很麻烦。这时需要一个自动化的解决方案----自动加载。

应用案例:

         thinkPHP里经常遇到类名与文件名一致,这便用到了自动加载功能。

代码解析:

<?php
    function myload($class){//这里$class为实例化的类名
        echo $class."?";
    }
    //注册一个函数为自动触发函数--调用/实例化一个不存在的类时便会自动触发
    spl_autoload_register('myload');
    new mySql();
?>

解析:new mySql()会在本页面查找mysql类,不存在时便会触发sql_autoload_register()里注册的自动触发函数

被注册函数的形参,上例为$class,会接受实例化的类名。

扫描二维码关注公众号,回复: 212221 查看本文章
<?php
    function myload($class){
        include './'.$class.'.class.php';//这里便会引入(自动加载)mySql.class.php文件
    }
    //注册一个函数为自动触发函数--调用/实例化一个不存在的类时便会自动触发
    spl_autoload_register('myload');
    new mySql();
?>

mySql.class.php:

<?php
    class mySql{
        public function __construct(){
            echo "789";
        }
    }
?>

 

 

【总结】

       简单理解所谓的自动加载并不是真的自动加载,而是利用spl_autoload_register()注册自动触发函数,利用函数里面设定的include内容来加载想要加载的文件。并且new里面的一个类名。

 

 

 

 

 

 

猜你喜欢

转载自570109268.iteye.com/blog/2414526