用php命名空间找不到Class

时间:2014-10-09 14:07:31

标签: php namespaces

大家好我在尝试使用这样的命名空间时遇到错误。这是运行下面代码的第一个错误。

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

// file:index.php

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

// file:B / autoloader.php

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

// file:A / ClassA.php

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

// file:B / ClassB.php

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

// file:B / C / ClassC.php

namespace B\C;
class ClassC{}

1 个答案:

答案 0 :(得分:0)

除非以\开头,否则所有命名空间引用都与当前命名空间相关:

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