我在PHP中自动加载类有问题。
在我写的index.php
中(这是最简单的):
function _autoload($class_name) {
require_once $class_name . '.php';
}
$a = new Cont();
我的Cont.php
文件位于PROJECT_ROOT/assets/core/Contr.php
;
结果,我的index.php
文件引发致命错误:
Fatal error: Class 'Cont' not found in /var/www/bill/index.php on line 15
答案 0 :(得分:3)
应该{{1}}似乎你错过了一个下划线字符。
那是......
__autoload()
的提示
spl_autoload_register()提供了更灵活的替代方案 自动加载类。出于这个原因,使用__autoload()是 气馁,将来可能会被弃用或删除。
答案 1 :(得分:1)
首先,它是__autoload
- 两个下划线。
其次,不鼓励使用这种技术 - spl_autoload_register
是更好的选择。
第三,如果您的文件位于require_once 'assets/core/' . $class_name . '.php';
,则您可能需要PROJECT_ROOT/assets/core
。