zoukankan      html  css  js  c++  java
  • PHP autoload机制(lazy loading)

    转载:http://www.cnblogs.com/hi-bazinga/archive/2012/05/14/2499756.html

    在使用PHP进行开发时,开发者往往将一个类存放在单独的一个文件中,便于使用和管理。

    但是在PHP5之前,每次使用一个类时,需要先将该文件include或require进来,如果需要使用的类数量很多,那么需要写很多include或require语句,既麻烦又不便于维护。好在PHP5提供了一种lazy loading的机制,即autoload。

    PHP5之前如果要使用class A:

    require ('A.php');
    $a = A();
    

    PHP5中在试图使用未定义的类时会自动调用__autoload函数,可以通过编写__autoload函数让php自动加载类,而不必写一个长长的包含文件列表。

    复制代码
    function __autoload($class)  
    {  
        $file = $class . '.php'; 
     
        if (is_file($file)) {  
            require_once($file);  
        }  
    }  
    
    $a = new A();
    复制代码

    当然,我们可以自定义__autoload加载类的规则。

    此外,假如我们不想自动加载的时候调用__autoload,而是调用我们自己的函数(或者类方法),我们可以使用spl_autoload_register来注册我们自己的autoload函数。

    复制代码
    function loader($class)  
    {  
        $file = $class . '.php';  
        if (is_file($file)) {  
             require_once($file);  
        }  
    }  
    
    spl_autoload_register('loader');  
    $a = new A();
    复制代码

    类方法:

    复制代码
    class Loader  
    {  
       public static function loadClass($class)  
       {  
           $file = $class . '.php';  
           if (is_file($file)) {  
              require_once($file);  
           }  
       }  
    }  
    
    spl_autoload_register(array('Loader', 'loadClass'));  
    $a = new A();
    复制代码
  • 相关阅读:
    成员变量和局部变量
    成员变量和局部变量
    对象和类
    数组
    Scanner--控制台输入
    Java运算符
    Java数据类型
    TextView控件
    Android控件
    注释
  • 原文地址:https://www.cnblogs.com/bugY/p/2721997.html
Copyright © 2011-2022 走看看