Php __自动加载不运行?
我有一个像这样的文件结构Php __自动加载不运行?,php,oop,autoload,Php,Oop,Autoload,我有一个像这样的文件结构 / /public -index.php -login.php /config.php /init.php /classes/ClassGroup/ClassName.class.php __autoload在config.php中定义,具有类的绝对路径。 index.php中需要config.php,但是当我尝试启动一个新类时 $user = new User_User; 导致 Fatal error: Class 'User_User' not foun
/
/public
-index.php
-login.php
/config.php
/init.php
/classes/ClassGroup/ClassName.class.php
__autoload在config.php中定义,具有类的绝对路径。
index.php中需要config.php,但是当我尝试启动一个新类时
$user = new User_User;
导致
Fatal error: Class 'User_User' not found in /......./public/index.php on line 27
它找不到它,并且当尝试在uu autoload()的最开始回显某些内容时,它也不会这样做,因此在我看来,它在找不到类时似乎不会运行该函数。
有人知道问题出在哪里吗
function __autoload($class){
//echo "autoloader started";
$pieces = explode('_', $class);
$path = __SITE_PATH.'/classes';
foreach( $pieces as $i ){
$path .= '/'.$i;
}
//echo "trying to include " .$path.".class.php";
require_once( $path . '.class.php' );
}
您的
\uu autoload
函数执行了一个require()
,这意味着如果找不到该文件,它将因致命错误而死亡。这意味着有两种可能性:
\u自动加载
函数\u autoload
函数正在加载User.class.php,但该文件未定义类User\u User添加
echo$路径;死亡
到您的\uu自动加载
,查看它是否实际被调用以及它试图加载的内容。检查User.class.php是否确实定义了类User\u User,并且类名称中没有输入错误。您的\u autoload
函数执行require()
,这意味着如果找不到文件,它将因致命错误而死亡。这意味着有两种可能性:
\u自动加载
函数\u autoload
函数正在加载User.class.php,但该文件未定义类User\u User添加
echo$路径;死亡
到您的\uu自动加载
,查看它是否实际被调用以及它试图加载的内容。检查User.class.php是否确实定义了类User\u User,并且类名称中没有输入错误。您的\u autoload
函数执行require()
,这意味着如果找不到文件,它将因致命错误而死亡。这意味着有两种可能性:
\u自动加载
函数\u autoload
函数正在加载User.class.php,但该文件未定义类User\u User添加
echo$路径;死亡
到您的\uu自动加载
,查看它是否实际被调用以及它试图加载的内容。检查User.class.php是否确实定义了类User\u User,并且类名称中没有输入错误。您的\u autoload
函数执行require()
,这意味着如果找不到文件,它将因致命错误而死亡。这意味着有两种可能性:
\u自动加载
函数\u autoload
函数正在加载User.class.php,但该文件未定义类User\u User添加
echo$路径;死亡
到您的\uu自动加载
,查看它是否实际被调用以及它试图加载的内容。检查User.class.php是否确实定义了类User\u User,并且类名中没有输入错误。我发现了问题,显然这个函数没有被自动调用。
这是解决办法
spl_autoload_register('__autoload');
这很有效。我发现了问题,显然这个函数没有被自动调用。 这是解决办法
spl_autoload_register('__autoload');
这很有效。我发现了问题,显然这个函数没有被自动调用。 这是解决办法
spl_autoload_register('__autoload');
这很有效。我发现了问题,显然这个函数没有被自动调用。 这是解决办法
spl_autoload_register('__autoload');
这很有效。让我们看看自动加载功能……您可以使用数组get_included_files()检查包含哪些文件。我不了解您的文件结构。你能组织得更好吗?@MarcelColomb这和自动加载有什么关系?“我的房子没有电”“别担心-你可以在加油站用一些水来清洁你的汽车”。如果你在config.php中回音,它会回音吗?让我们看看自动加载功能…你可以使用数组get_included_files()来检查包含哪些文件。我不理解你的文件结构。你能组织得更好吗?@MarcelColomb这和自动加载有什么关系?“我的房子没有电”“别担心-你可以在加油站用一些水来清洁你的汽车”。如果你在config.php中回音,它会回音吗?让我们看看自动加载功能…你可以使用数组get_included_files()来检查包含哪些文件。我不理解你的文件结构。你能组织得更好吗?@MarcelColomb这和自动加载有什么关系?“我的房子没有电”“别担心-你可以在加油站用一些水来清洁你的汽车”。如果你在config.php中回音,它会回音吗?让我们看看自动加载功能…你可以使用数组get_included_files()来检查包含哪些文件。我不理解你的文件结构。你能组织得更好吗?@MarcelColomb这和自动加载有什么关系?“我的房子没有电”“别担心,你可以在加油站用一些水来清洁你的汽车”。如果你在config.php中回音,它会回音吗?这不是一个解决方案,这是一个解决办法。自动加载功能是一个神奇的功能。它重新定义了自动加载。如果不调用它,则会出现另一个问题。来自php.net:Tip spl_autoload_register()为自动加载类提供了更灵活的替代方法。因此,不鼓励使用_autoload(),将来可能会被弃用或删除。您会问为什么_autoload不起作用。你用“做点别的”来回答这个问题。即使其他的东西确实起作用,它也不能回答最初的问题:为什么自动加载不起作用。这不是一个解决方案,这是一个解决办法。自动加载功能是一个神奇的功能。它重新定义了自动加载。如果不调用它,则会出现另一个问题。来自php.net:Tip spl_autoload_register()为自动加载类提供了更灵活的替代方法。对于这个r