好的,所以,我一直在使用自动加载器一段时间,变得相当习惯于MVC,并决定尝试解决命名空间。那么,这没有按预期工作。我已成功地重现错误在一个非常简单的方法,让我的PHP文件的内容如下:PHP命名空间不工作 - 怀疑PHP配置问题
<?php
namespace site\test;
echo 'hello';
输出是不是我所期待的:
致命错误:命名空间声明语句必须是文件第2行中的第一条语句
我在Synology NAS上使用最新版本的DSM(Synology的操作系统)运行PHP 5.3.10。这使用了Apache v2.2.22。我可以确认,注释掉“命名空间”行后面会返回单词“hello”,在它之前没有多余的字符。
文件开头没有BOM。我也没有设置标题的问题,如“位置”,这表明这是一个问题。
行尾是Unix(仅限\ n),文件的字符编码是UTF8。
PHP设置“auto_prepend_file”为空。
这同样适用于使用命名空间的第三方文件,还是仅适用于您创建的文件? – 2013-02-13 21:49:40
@ dev-null-dweller - 使用命名空间的所有文件。 – SEoF 2013-02-13 22:12:29