PHP 多个类具有相同的命名空间

enz*_*nzo 4 php namespaces class

我想要澄清命名空间的使用。

如果我在同一个命名空间中有两个类,如下所示:

<?php

namespace Test\Collection; 

class First{}
Run Code Online (Sandbox Code Playgroud)

和:

<?php

namespace Test\Collection; 

class Second{}
Run Code Online (Sandbox Code Playgroud)

在这种情况下我可以这样使用它们吗?

use Test\Collection;

$first = new First();
$second = new Second();
Run Code Online (Sandbox Code Playgroud)

谢谢。

Wil*_*ill 8

不完全的。

以您的示例为例,您需要:

<?php

use Test\Collection\First;
use Test\Collection\Second;

$first = new First();
$second = new Second();
Run Code Online (Sandbox Code Playgroud)

或者:

<?php

use Test\Collection;

$first = new Collection\First();
$second = new Collection\Second();
Run Code Online (Sandbox Code Playgroud)

请参阅文档以获取更多信息。这称为“命名空间导入或别名”。


小智 5

您可以使用命名空间的多个类,如下所示

use Test\Collection as Container;

$first = new Container\First();
$second = new Container\Second();
Run Code Online (Sandbox Code Playgroud)

我认为@Will 的第二个解决方案在某些情况下可能不起作用。

为了您更好地理解,请看一下这个解释。希望这可以帮助