php中的命名空间和类

时间:2009-11-28 17:56:10

标签: php class namespaces

为什么我收到错误?同一名称空间中的类..

php 5.3.0

namespace ExampleSystem\Core;
class Test {
    public function __construct() {
        print 'Test ok';
    }
}

// Fatal error: Class 'Test' not found in ...
$class_name = 'Test';
$obj = new $class_name;

// Ok
$class_name = 'ExampleSystem\Core\Test';
$obj = new $class_name;

// Ok
$obj = new Test;

1 个答案:

答案 0 :(得分:2)

我在PHP手册中找不到章节和经文,但明显的解释是当你这样做时:

 $obj = new $string

然后$string的值未映射到当前名称空间。这是有道理的,当您考虑$string可能已经从其他地方传入时,其他命名空间可能已经生效。