PHP自动加载功能不起作用 - wamp

时间:2015-10-04 03:34:26

标签: php class autoload

我有自动加载功能的奇怪问题。

我的结构是这样的

Project
 |
 +-- test.php
 |    
 +-- class
 |  |  
 |  +-- class.news.php

我有这段代码:

function __autoload($class_name) {

if(file_exists('class/class.'.strtolower($class_name).'.php')){

require_once('class/class.'.strtolower($class_name).'.php'); 

} else {

 throw new Exception("Unable to load $class_name.");

}
   }

try {

$a = new News();

 } catch (Exception $e) {

 echo $e->getMessage(), "\n";

 }

我得到了

Fatal error: Class 'News' not found

file class.news.php

class News{
    function insert($request){
        return "ok";
        }
     }

我在Windows 10上的wamp服务器上运行它

1 个答案:

答案 0 :(得分:0)

使用文档根目录来避免相对路径出现问题:

$prefix = $_SERVER['DOCUMENT_ROOT'] . '/class/class.';
$filename = $prefix . strtolower($class_name) . '.php';
if(file_exists($prefix)){
    require_once($prefix); 
}