PHP自动加载原理_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > PHP自动加载原理

PHP自动加载原理

 2018/3/26 11:47:11  青春..荒唐  程序员俱乐部  我要评论(0)
  • 摘要:【前言】本文记录下PHP自动加载的原理和相关应用【主体】应用场景:实例化某个类时,如MySQL,需要先require()。如果类比较多,目录也就比较多,require引入文件时将显得很麻烦。这时需要一个自动化的解决方案----自动加载。应用案例:thinkPHP里经常遇到类名与文件名一致,这便用到了自动加载功能。代码解析:<?phpfunctionmyload($class){//这里$class为实例化的类名echo$class."?";}//注册一个函数为自动触发函数-
  • 标签:PHP

?【前言】

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

?

【主体】

应用场景:

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

应用案例:

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

代码解析

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

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

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

<?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里面的一个类名。

?

?

?

?

?

?

上一篇: 单例模式的优缺点和使用场景 下一篇: 没有下一篇了!
发表评论
用户名: 匿名