PHP:如何自动包含和实例化类?

Sta*_*bie 2 php oop

我的脚本的同一目录中有一个 PHP 文件列表。它们都遵循命名约定(例如 class.foo.php)。当我的脚本运行时,我希望它包含这些文件。做一个scandir文件很简单,对结果数组中的每个项目和include文件进行测试。

问题是如何在我的脚本中创建这些类的实例(这也是一个类)?该文件class.foo.phpclass Foo在其中。我需要创建一个实例Foo(有时只是访问一个静态方法)。我无法在运行脚本中执行此操作,因为它不知道自动包含的类。

get_included_files 没用,因为它返回类链中的所有包含文件(我只对运行脚本中包含的类感兴趣)。

也许我以错误的方式解决这个问题。我有什么方法可以“自动包含”类文件并在运行脚本中使用它们?

Dev*_*von 5

创建一个自动加载函数并注册它:spl_autoload_register

当类被实例化时,适当的自动加载函数将加载相应的文件。

来自 php.net 的示例:

function my_autoloader($class) {
    include 'classes/' . $class . '.class.php';
}

spl_autoload_register('my_autoloader');
Run Code Online (Sandbox Code Playgroud)