脚本无法解析命名空间

时间:2016-02-03 06:35:06

标签: php namespaces

我在同一目录中创建了两个文件。

test.php

<?php

namespace one;

class Greet{
    public function __construct() {
        echo 'Hello';
    }
}

namespace two;

class Fruit{
    public function __construct(){
        echo 'Orange';
    }
}

tester.php

<?php

 error_reporting('-1');
 use one\Greet;
 $object = new Greet();

当我运行tester.php时出现错误:

Fatal error: Class 'one\Greet' not found in C:\wamp\www\tester.php on line 5

它可能是什么原因?我确实指定了我想要使用的命名空间。

1 个答案:

答案 0 :(得分:0)

您的test.php中未包含tester.php个文件。

撰写use one\Greet;并不意味着会包含test.php。 您必须自己将其包含在requireinclude construct:

error_reporting('-1');
include 'test.php';

use one\Greet;
$object = new Greet();

或者注册自动加载器功能,它会根据您仍然定义的某些逻辑自动尝试加载类。有关autoloading的更多信息。

最后 - 在一个文件中定义多个名称空间不推荐