gpt4 book ai didi

php - 如何将 __autoload 用于不同的文件夹?

转载 作者:行者123 更新时间:2023-12-04 05:45:43 26 4
gpt4 key购买 nike

我正在尝试自动加载不同文件夹中的类。这可能吗?

       function __autoload($class){
require $class.'.php';
require 'libs/'.$class.'.php';
//this won't work.
}

我想自动加载 libs 文件夹或根目录中的类。有什么想法吗?非常感谢。

最佳答案

首先,我建议你查看spl_autoload_register ,这是执行此操作的优越性。

其次,你应该使用 is_file测试文件是否存在,然后尝试加载它。如果您 require一个不存在的文件,您的脚本将停止。

spl_autoload_register(function($class) {
if (is_file($class . '.php')) {
require $class . '.php';
} elseif (is_file('libs/' . $class . '.php')) {
require 'libs/' . $class . '.php';
}
});

如果文件可能存在多个文件夹,则可以执行以下操作:
spl_autoload_register(function($class) {
$folders = array ('.', 'libs', 'somewhere');

foreach ($folders as $folder) {
if (is_file($folder . '/' . $class . '.php')) {
require $folder . '/' . $class . '.php';
}
if (class_exists($class)) break;
}
});

关于php - 如何将 __autoload 用于不同的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10711917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com