下面举例说明require、namespace、use三者的配合使用:
项目目录结构:
|-- spaceTestB |--TestBChild |-- TestC.php |-- TestB.php |-- index.php |-- TestA.php <?php # filename: index.php require "TestA.php"; require "spaceTestB/TestB.php"; require "spaceTestB/testBChild/TestC.php"; use namespaceTestB\testBChild\TestC; echo "index"."<br>"; $a = new TestA(); $a->main(); $b = new namespaceTestB\TestB(); $b->main(); $c = new TestC(); $c->main(); ?> <?php # filename: testA.php class TestA { public function main() { echo "TestA"."<br>"; } } ?> <?php # filename: testB.php namespace namespaceTestB; class TestB { public function main() { echo "TestB"."<br>"; } } ?> <?php # filename: testC.php namespace namespaceTestB\testBChild; class TestC { public function main() { echo "TestC"."<br>"; } } ?>直接执行接的结果为正常输出:
index TestA TestB TestC问题说明
index使用TestA类,TestA没有使用命名空间,直接使用require引入才能使用,这里应该没问题index使用TestB类,TestB有使用名空间,仍旧需要require引入,但是在使用的跟没有使用命名空间有区别,这里使用是:$b = new namespaceTestB\TestB();index使用TestC类,跟TestB类前面都一样,但是这里我们使用use关键字起别名,此处要注意的一点是需要require