包含文件中的命名空间声明是否自动包含父文件';s名称空间(PHP)?
这应该是一个简单的问题。我还没有安装5.3,所以我不能自己做实验 在包含的文件中声明名称空间时,是否必须声明名称空间的完整路径,或者父名称空间是否已假定包含 例如,如果我有一个文件:包含文件中的命名空间声明是否自动包含父文件';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; //
// 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;