我想要澄清名称空间的使用。
如果我在同一名称空间中有两个类,如下所示:
<?php
namespace Test\Collection;
class First{}
和
<?php
namespace Test\Collection;
class Second{}
在这种情况下,我可以这样使用它们吗?
use Test\Collection;
$first = new First();
$second = new Second();
感谢。
答案 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};