如何解决包含文件中的名称空间声明是否自动包含父文件的名称空间PHP?
| 应该是一个简单的问题。我尚未安装5.3,所以无法进行自我测试。 在包含文件中声明名称空间时,是否必须声明名称空间的完整路径,还是已经假定要包含父名称空间? 例如,如果我有一个文件:// file1.php
<?php
namespace parent_space;
include \'file2.php\';
?>
第二个文件:
// file2.php
<?php
namespace child_space;
// some code
?>
由于ѭ4中的parent_space
命名空间中包含file2.php
,因此\“ some code \”\\parent_space\\child_space\\
的命名空间是just6ѭ还是?
解决方法
不会。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
您将需要以这种方式定义file2.php:
<?php
namespace Food\\Tacos;
有关名称空间的更多信息,请参考PHP手册:http://www.php.net/manual/en/language.namespaces.basics.php
,PHP手动名称空间部分中有一些类似的示例:
http://www.php.net/manual/zh/language.namespaces.basics.php
最简洁的答案是不。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。