2014-10-09 126 views
0

嗨,我尝试使用这样的命名空间时,我得到一个错误。以下是运行下面代码的第一个错误代码。找不到类用php命名空间

Fatal error: Class B\C\ClassC' not found 

//文件:的index.php

define("DS",DIRECTORY_SEPARATOR); 
define("__PATH__",$_SERVER["DOCUMENT_ROOT"]); 
include (__PATH__.DS.'B'.DS.'autoloader.php'); 
use A\ClassA; 
$obj = new classA(); 

//文件:B/autoloader.php

spl_autoload_register(function($class){ 
    require_once __PATH__.DS.$class.'.php'; 
}); 

//文件:A/ClassA.php

namespace A; 
use B\ClassB; 
class ClassA extends ClassB{} 

//文件:B/ClassB.php

namespace B; 
use B\C\ClassC; 
class ClassB extends ClassC{} 

//文件:B/C/ClassC.php

namespace B\C; 
class ClassC{} 
+0

我已经试过相同码。我没有收到任何错误 – 2014-10-09 14:53:43

回答

0

除非有\开始,所有的命名空间引用是相对于当前命名空间:

namespace Foo; 
use Bar\Baz; // refers to \Foo\Bar\Baz 
use \Bar\Baz; // refers to \Bar\Baz 
+0

同样的问题致命错误:未找到Class B \ C \ ClassC'感谢您的回复 – Elbaninaoufal 2014-10-09 16:00:35

相关问题