Php 名称空间关键字是什么

Php 名称空间关键字是什么,php,namespaces,expression,Php,Namespaces,Expression,我正在阅读PHP参考手册,遇到以下代码片段: <?php namespace foo; use My\Full\Classname as Another; use My\Full\NSname; use ArrayObject; $obj = new namespace\Another; //I don't understand this line $obj = new Another; NSname\subns\func(); $a = new ArrayObject(array(1

我正在阅读PHP参考手册,遇到以下代码片段:

<?php
namespace foo;
use My\Full\Classname as Another;
use My\Full\NSname;
use ArrayObject;

$obj = new namespace\Another; //I don't understand this line
$obj = new Another; 
NSname\subns\func();
$a = new ArrayObject(array(1)); 
?>

如果您有以下类

a-名称空间foo b-名称空间栏 c-无命名空间

然后,如果您包含这些文件并调用它们

a将是新的foo\a b将是新的酒吧\b c将是新的c


我使用名称空间简化自动加载,因此您可以使用名称空间作为目录,例如,new mynamespace\database\connector意味着该类存在于数据库目录中,文件名为connector.php,因此您不必有包含所有类文件的部分

您到底想知道什么?PHP作为关于名称空间的广泛文档:您标记的行表示从当前名称空间创建类
另一个
的新实例。请参阅。@FelixKling这里引用了php引用:
如果将包含类名称的字符串用于new,则将创建该类的新实例。如果类位于命名空间中,则执行此操作时必须使用其完全限定名。
。在我的例子中,字符串是
namespace\other
。但在调用构造函数之前,必须对namespace语句求值。在
名称空间foo中
它只是定义了
foo
名称空间,但在我标记的字符串中,它被解析为
foo
。为什么?引用中指定了它在哪里?正如我所说的,并且您可以在我链接到的页面上看到,
namespace
是一个特殊的关键字,它引用了当前的名称空间。您引用的部分不适用于您的情况,因为您在这里没有使用字符串<代码>命名空间\另一个
不是字符串。再看一看属于您引用的零件的示例。