`
dcj3sjt126com
  • 浏览: 1871374 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

PHP autoload机制(lazy loading)

阅读更多

Wikipedia:Lazy loading is a design pattern commonly used in computer programming to defer initialization of an object until the point at which it is needed. It can contribute to efficiency in the program's operation if properly and appropriately used. The opposite of lazy loading is eager loading

 

在使用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();

 

0
1
分享到:
评论

相关推荐

    PHP的autoload机制的实现解析

    因此,PHP的autoload机制被设计出来,以实现更加高效的类加载。 在介绍autoload机制之前,需要先理解PHP的OO(面向对象)模式开发。在面向对象编程中,类是构建程序的基本单位。通常我们会将每个类定义在一个单独的...

    autoload机制

    在PHP编程中,`autoload`机制是一个至关重要的特性,它允许开发者在程序运行时按需加载类文件,而不是在脚本开始时一次性包含所有类。这样显著减少了代码的执行时间和资源消耗,尤其对于大型项目来说,能有效提高...

    深入PHP autoload机制的详解

    为了解决这些问题,PHP引入了autoload机制,也称为“懒加载”(lazy loading)。懒加载是一种设计模式,它会推迟资源的加载,直到真正需要的时候。在PHP中,这意味着只有在类真正被实例化或者类的方法被调用时,相应...

    PHP autoload与spl_autoload自动加载机制的深入理解

    PHP autoload机制详解(1) autoload机制概述在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这 也是OO设计的基本思想...

    php __autoload自动加载功能详解

    在PHP编程中,`__autoload`函数是一种非常重要的机制,它允许你在运行时动态地加载类文件,从而避免了在程序开始时显式地引入所有需要的类。这个功能极大地提高了代码的组织性和效率,减少了代码冗余。下面将详细...

    php自动加载autoload机制示例分享

    PHP自动加载的autoload机制是PHP面向对象编程中一个重要的特性,它能够在运行时自动加载指定的文件,而无需手动调用include或require语句。在PHP 5及以后的版本中,autoload通常使用spl_autoload_register()函数来...

    autoload与namespace实例

    在PHP中,`autoload`是一种自动加载类文件的机制,它允许我们在需要一个类的时候再去加载其对应的源文件,而不是在脚本开始时一次性加载所有类。这样可以减少内存占用,提高程序性能。实现`autoload`通常需要注册一...

    PHP中spl-autoload-register()函数用法实例详解-.docx

    SPL 库是 PHP5 引入的一个扩展库,其主要功能包括 autoload 机制的实现及各种 Iterator 接口或类。SPL 库提供了多种自动加载机制,包括 spl_autoload() 和 spl_autoload_call() 函数。 spl_autoload_register() ...

    php autoload 代码

    在PHP编程中,`autoload` 是一种非常重要的机制,它允许我们无需显式地使用 `require` 或 `include` 来加载所需的类文件。当尝试实例化一个未定义的类时,PHP会调用预定义的`__autoload` 函数或者使用` spl_autoload...

    Zend的AutoLoad机制介绍

    Zend框架中的AutoLoad机制是PHP开发者们在使用该框架时最先接触到的特性之一。AutoLoad机制的目的在于自动加载类文件,使得开发者无需在每次使用类时都手动包含(include或者require)相应的文件。这极大提升了开发...

    PHP之autoload运行机制实例分析

    PHP的autoload运行机制是为了实现类的自动加载而设计的。当程序尝试使用一个尚未定义的类时,PHP会自动寻找一个能够定义该类的方法。这个过程可以大幅简化面向对象编程的复杂性,让程序员不必在使用新类之前手动包含...

    php-autoload:[php]通用类自动加载器

    自动加载 [php]通用类自动加载器。...require_once 'autoload.php' ; autoload (); autoload ( 'some/other/dir' ); $ my_class = new My \ ClassName (); $ other_class = new Other \ ClassName ();

    说说PHP的autoLoad自动加载机制

    在PHP编程中,`autoLoad`机制是一种非常重要的特性,它允许我们在实例化类或调用类方法时,自动加载所需的类文件,从而避免了在程序开头就需要包含所有可能用到的文件。PHP提供了两种主要的方式来实现自动加载:`__...

    PHP autoload使用方法及步骤详解

    在PHP编程中,`__autoload` 是一个非常重要的特性,特别是在PHP5及以上版本。这个功能允许程序员无需显式地使用 `include` 或 `require` 来加载类文件,而是通过定义一个特殊函数来自动加载所需的类。这极大地提高了...

    Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法

    本文实例讲述了Laravel框架访问...`Warning: require(/http/www.mywakavLee.cn/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /http/www.mywakavLee.cn/bootstrap/autolo

Global site tag (gtag.js) - Google Analytics