我有三个文件
/autoload-test.php
spl_autoload_register(function ($class) {
require_once($_SERVER['DOCUMENT_ROOT'] . '/controllers/' . $class . '.php');
});
$different_file_obj = new test;
/控制器/test.php
require_once('some_var.php');
class test {
function __construct() {
echo $GLOBALS['var'];
}
}
/控制器/some_var.php
$var = 'some value';
当我在浏览器中打开文件 1 时,它给了我这个 -> 注意:未定义索引:第 7 行 /Applications/XAMPP/xamppfiles/htdocs/avrs/controllers/test.php 中的 var
但是如果我将文件更改为 ->
require_once($_SERVER['DOCUMENT_ROOT'] . '/controllers/test.php');
$different_file_obj = new test;
它工作正常,所以我认为使用 spl_autoload_register 包含文件有一些不同,因为这是我在这里唯一要更改的内容。包括没有 spl_autoload_register 工作得很好。
有什么我应该知道的,或者我可以在哪里阅读有关此的详细信息?