2014-10-09 102 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