奇怪的意外T_STRING错误

时间:2012-09-03 16:03:38

标签: php symfony syntax-error fosuserbundle

我在当前的Symfony2项目中有一个奇怪的PHP错误:

unexpected T_STRING in /blahblah/Foo/BarBundle/Entity/User.php on line 1

这是一个非常标准的错误,通常与不匹配的“或”对相关联。

但这是User.php文件的代码

<?php
namespace Foo\BarBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="fos_user")
 * @ORM\Entity(repositoryClass="Foo\BarBundle\Entity\UserRepository")
 */
class User extends \FOS\UserBundle\Entity\User
{
    // classic user entity

行&lt;?php是第1行。没有引号,奇怪的是这个错误只出现在我的登台服务器上:在具有代码本地副本的2台开发机器上,它的行为符合预期,没有错误或警告。 该文件是正确的,缓存已清空。我认为它可能是一个编码错误但它似乎不是这个。我也想过命名空间问题,但服务器上的PHP版本是正确的(5.3.16)

你知道这个错误可能源于什么,或者我可以搜索哪个方向?提前谢谢。

2 个答案:

答案 0 :(得分:2)

我使用的大多数编码约定都严格要求使用脚本中的LF(&#39; Unix样式&#39;,'\x0A')行结尾。无论谁设法用CRLF提交代码,或者上帝保佑,CR都必须忍受皇室般的痛苦。 )

这似乎不是什么大问题,但它可以节省你几个小时寻找一个奇怪的错误 - 例如在这种情况下。

答案 1 :(得分:0)

我认为这是您文件的编码问题。例如,如果您的项目采用UTF8编码,请使用文本编辑器打开文件,然后选择“编码”选项 - &gt;没有BOM的UTF-8。