我的脚本的同一目录中有一个 PHP 文件列表。它们都遵循命名约定(例如 class.foo.php)。当我的脚本运行时,我希望它包含这些文件。做一个scandir文件很简单,对结果数组中的每个项目和include文件进行测试。
问题是如何在我的脚本中创建这些类的实例(这也是一个类)?该文件class.foo.php将class Foo在其中。我需要创建一个实例Foo(有时只是访问一个静态方法)。我无法在运行脚本中执行此操作,因为它不知道自动包含的类。
get_included_files 没用,因为它返回类链中的所有包含文件(我只对运行脚本中包含的类感兴趣)。
也许我以错误的方式解决这个问题。我有什么方法可以“自动包含”类文件并在运行脚本中使用它们?
创建一个自动加载函数并注册它: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)