我在当前的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)
你知道这个错误可能源于什么,或者我可以搜索哪个方向?提前谢谢。
答案 0 :(得分:2)
我使用的大多数编码约定都严格要求使用脚本中的LF
(&#39; Unix样式&#39;,'\x0A'
)行结尾。无论谁设法用CRLF
提交代码,或者上帝保佑,CR
都必须忍受皇室般的痛苦。 )
这似乎不是什么大问题,但它可以节省你几个小时寻找一个奇怪的错误 - 例如在这种情况下。
答案 1 :(得分:0)
我认为这是您文件的编码问题。例如,如果您的项目采用UTF8编码,请使用文本编辑器打开文件,然后选择“编码”选项 - &gt;没有BOM的UTF-8。