7

現在の 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

行 <?php は行番号 1 です。引用符はありません。奇妙なことは、このエラーがステージング サーバーにのみ表示されるという事実から来ています。コードのローカル コピーを持つ 2 つの開発マシンでは、エラーや警告なしで期待どおりに動作します。ファイルは正しいものです。キャッシュは空になりました。エンコードエラーかと思いましたが、そうではないようです。名前空間の問題も考えましたが、サーバー上の PHP バージョンは正しいです (5.3.16)

このエラーが何に起因するのか、またはどの方向に検索できるのか、何かわかりますか? 前もって感謝します。

4

2 に答える 2

2

私が使用したほとんどのコーディング規約では、スクリプトで('Unixスタイル'、)行末を使用する必要があります。そして、なんとかコードを提出した人、または神が禁じた人は誰でも、王室の苦痛に耐えなければなりませんでした。)。LF'\x0A'CRLFCR

それほど大したことではないように思われるかもしれませんが、この場合のように、奇妙なエラーを検索する時間を節約できます。

于 2012-09-03T16:44:40.523 に答える
0

ファイルのエンコードの問題だと思います。たとえば、プロジェクトが UTF8 でエンコードされている場合は、テキスト エディターでファイルを開き、[エンコード] -> [BOM なしの UTF-8] オプションを選択します。

于 2012-09-03T16:17:26.467 に答える