我有一个文件可以自动加载我的每个类。
这是它包含的内容:
spl_autoload_register(function($class){
require_once 'classes/' . $class . '.php';
});
require_once 'functions/sanitize.php';
require_once 'functions/hash.php';
但是当我
require_once
这个文件来自我的 中的另一个 php 文件 Ajax 文件夹,它会尝试寻找 类(class) ,该函数将从我的类中查找路径:main_folder/ajax/classes
而不仅仅是 main_folder/classes
.有谁知道如何解决这一问题 ?
修复 :
spl_autoload_register(function($class){
if (file_exists('classes/' . $class . '.php')) {
require_once 'classes/' . $class . '.php';
}
elseif (file_exists('../classes/' . $class . '.php')) {
require_once '../classes/' . $class . '.php';
}
elseif (file_exists('../../classes/' . $class . '.php')) {
require_once '../../classes/' . $class . '.php';
}
最佳答案
你应该简单地使用这个函数一次 - 在主文件(通常是 index.php)中而不是在另一个文件中。
但是,如果这是不可能的(但我看不出任何理由何时不可能),您可以通过以下方式更改它:
spl_autoload_register(function($class){
if (file_exists('classes/' . $class . '.php')) {
require_once 'classes/' . $class . '.php';
}
elseif (file_exists( $class . '.php')) {
require_once $class . '.php';
}
});
关于php - spl_autoload_register() 在不同目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24717626/