包含文件中的命名空间声明是否自动包含父文件';s名称空间(PHP)?

包含文件中的命名空间声明是否自动包含父文件';s名称空间(PHP)?,php,namespaces,Php,Namespaces,这应该是一个简单的问题。我还没有安装5.3,所以我不能自己做实验 在包含的文件中声明名称空间时,是否必须声明名称空间的完整路径,或者父名称空间是否已假定包含 例如,如果我有一个文件: // file1.php <?php namespace parent_space; include 'file2.php'; ?> //file1.php 和第二个文件: // file2.php <?php namespace child_space; //

这应该是一个简单的问题。我还没有安装5.3,所以我不能自己做实验

在包含的文件中声明名称空间时,是否必须声明名称空间的完整路径,或者父名称空间是否已假定包含

例如,如果我有一个文件:

// file1.php
<?php
    namespace parent_space;
    include 'file2.php';
?>
//file1.php
和第二个文件:

// file2.php
<?php
    namespace child_space;
    // some code
?>
//file2.php

由于
file2.php
包含在
file1.php
中的
parent\u space
命名空间中,因此是“some code”
\parent\u space\child\u space\
的命名空间,还是仅仅是
\child\u space\


简短的回答是:不。

不。当包含文件时,PHP对文件的位置没有任何意义,但在解析代码时,它确实将每个文件视为一个完全独立的实体,就名称空间而言

因此,此代码将不起作用:

<?php
    namespace Food; //this is a top level namespace
    include 'file2.php';

//file2.php
<?php
    namespace Tacos; //this is still a top level namespace

这是文档所说的:我假设不是,你的意思是使用了我提出的第二个名称空间的可能性?是的。“否”是对标题中问题的回答。
<?php

namespace Food\Tacos;