在其他命名空间中使用多个类
Posted
技术标签:
【中文标题】在其他命名空间中使用多个类【英文标题】:Use multiple classes in other namespaces 【发布时间】:2011-02-06 02:33:54 【问题描述】:如果我在命名空间 com\test
中有一些 php 类
并且想将它们全部导入另一个php文件怎么做?
use com\test\ClassA
use com\test\ClassB
...
use com\test\*
给我语法错误。
【问题讨论】:
【参考方案1】:从 PHP 7.0 开始,从同一个命名空间导入的类、函数和常量可以组合在一个 use 语句中。
像这样:
use com\test\ClassA, ClassB;
$a = new ClassA;
$b = new ClassB;
【讨论】:
【参考方案2】:这应该可行:
use com\test;
$a = new \test\ClassA;
$b = new \test\ClassB;
或
use com\test\ClassA as ClassA;
use com\test\ClassB as ClassB;
$a = new ClassA;
$b = new ClassB;
请参阅PHP manual on Using namespaces: Aliasing/Importing。
【讨论】:
很无聊!希望 PHP 开发者能加入这个功能。 同意。我意识到这是为了防止命名冲突,但老实说 - .NET、Java 和其他人多年来一直在这样做。抛出一个致命错误而不是强迫我们使用丑陋的语法有这么难吗? 第一个示例将引用命名空间test
而不是 com\test
中的类,您必须删除开头的“\”才能使用别名 test
【参考方案3】:
我认为你不能这样做。
你可以这样做:
use com\test
并在以后将您的课程称为:
test\ClassA
test\ClassB
【讨论】:
以上是关于在其他命名空间中使用多个类的主要内容,如果未能解决你的问题,请参考以下文章