几个类的PHP相同的命名空间

时间:2015-12-30 11:13:13

标签: php class namespaces

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

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

<?php

namespace Test\Collection; 

class First{}

<?php

namespace Test\Collection; 

class Second{}

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

use Test\Collection;

$first = new First();
$second = new Second();

感谢。

3 个答案:

答案 0 :(得分:3)

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

.to("log:like-to-see-all?level=INFO&showAll=true&multiline=true")

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

为了更好地理解,请查看此explanation。希望这有帮助

答案 1 :(得分:2)

不完全。

根据您的示例,您需要:

<?php

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

$first = new First();
$second = new Second();

或者:

<?php

use Test\Collection;

$first = new Collection\First();
$second = new Collection\Second();

有关详细信息,请参阅the documentation。这称为“名称空间导入或别名”。

答案 2 :(得分:1)

任何有兴趣从PHP 7开始执行此操作的人,还有另一种选择:

“从PHP 7.0起,可以在单个use语句中将从同一名称空间导入的类,函数和常量组合在一起”

<?php
    use some\namespace\{ClassA, ClassB, ClassC as C};
    use function some\namespace\{fn_a, fn_b, fn_c};
    use const some\namespace\{ConstA, ConstB, ConstC};

来源:Official PHP documentation