1

我在 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
4

2 回答 2

3

__autoload()看起来你好像错过了一个下划线字符。

那是..

function __autoload($class_name) {
  require_once $class_name . '.php';
}

$a = new Cont();

PHP手册中的一个提示...

spl_autoload_register() 为自动加载类提供了更灵活的替代方案。出于这个原因,不鼓励使用 __autoload() 并且将来可能会弃用或删除。

于 2014-04-30T13:04:16.300 回答
1

首先,它是__autoload- 两个下划线。

其次,不鼓励这种技术 -spl_autoload_register是一个更好的选择。

第三,require_once 'assets/core/' . $class_name . '.php';如果您的文件位于PROJECT_ROOT/assets/core.

于 2014-04-30T13:05:04.487 回答