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)
谢谢。
不完全的。
以您的示例为例,您需要:
<?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 的第二个解决方案在某些情况下可能不起作用。
为了您更好地理解,请看一下这个解释。希望这可以帮助