PHP自动加载类文件

时间:2018-11-15 15:17:09  来源:igfitidea点击:

在本教程中,我们将学习如何组织类的文件,并使用PHP 的__autoload()函数自动加载它们。

最好将每个PHP类保存在一个单独的文件中,将所有类文件保存在一个名为classes的文件夹中。此外,应该使用类的名称来命名文件。例如,如果您有一个Person类,那么文件名应该是Person.php。

在使用类之前,您需要使用PHP包含文件函数(如require_once())将其加载到脚本文件中,如下所示:

require_once("classes/bankaccount.php");
$account = new BankAccount();

当类的数量增加时,在使用类的任何地方调用require_once()函数都是非常单调乏味的。

幸运的是,PHP提供了一种机制,允许您在当前脚本文件的上下文中尝试从不存在的类创建对象时自动加载类文件。

当您从一个不存在的类中创建一个对象时,PHP将自动调用__autoload()函数。要自动加载类文件,您需要在web应用程序的某个地方实现__autoload()函数,如下所示:

<?php
function __autoload($className) {
    $className = str_replace('..', '', $className);
    require_once("classes/$className.php");
}

无论何时从一个不存在的类创建对象,PHP都会查看./class文件夹,并使用require_once()函数加载相应的类文件。

现在,您就不必每次使用该类时都调用require_once()函数,这非常有用。

注意,如果PHP无法找到__autoload()函数,或者__autoload()函数加载类文件失败,都将会报错。