PHP __autoload无法重新声明

| 我开始使用PHP __autoload函数,现在我遇到了那些奇怪的致命错误:无法重新声明xxx类错误。 这很奇怪,因为这些错误发生在我什至没有使用自动加载功能加载的类上。而且我还使用require_once来包含文件。 我真的对此感到困惑。使用自动加载功能时,有人对这种错误有任何了解吗?     
已邀请:
require_once
/
include_once
仅在尝试包含文件时才查看文件名,而不是类名。因此,您可以在Foo.php和B.php中都拥有类
Foo
,然后您将得到该错误。 我不确定
__autoload
会给您带来什么问题,除非
__autoload
需要Foo.php,因为它需要
Foo
类,并且您需要手动重新定义which2ѭ类的B.php。 顺便说一句,使用
spl_autoload_register
代替
__autoload
。     
我也有同样的情况。
include(\'xxx.php\');
require_once(\'xxx.php\');
    
我以前有过这个,虽然不确定是什么原因造成的。确保您使用的是
require_once
/
include_once
,而不是普通的入门版。我认为问题与使用
class_exists
有关,而没有告诉它跳过自动加载(ѭ14related)-您正在这样做吗?     
我发现了问题。显然,当它想包含Bank类时,它从当前目录^^中获取了\“ bank.php \”文件。这只是银行页面,它应该包含\“ src / model / Bank.php \”。我从搜索列表中删除了当前目录,该目录已得到修复。 因此,请始终确保自动加载功能包括正确的文件。好的做法也是更简单地命名文件,例如class.Bank.php或class.User.php,而不是Bank.php或User.php。 无论如何,感谢您的帮助和快速的回​​复!     
我不装最好的答案。只是我的想法。 __autoload()在PHP 7.2中已弃用,并且可能会被删除。 我发现这种上传/包含文件的方式
//initialize a function which will upload files
function upload(){//you can call the function as you like
  //your path to files goes here
}

spl_autoload_register(\'upload\')//specify the function, where you include your files(in this case it\'s upload function   
    

要回复问题请先登录注册