#バドシス 〜 日々のことを続く限り書いてみようと思って 〜

三日坊主が得意ですが、頑張って日々のことを書いていこうと思います。

PHP Fatal error: Namespace declaration statement has to be the very first statement in the script

f:id:mizominton:20161011162045p:plain

躓いたので残しておきます。

名前空間

PHP: 名前空間の定義 - Manual

(PHP 5 >= 5.3.0, PHP 7)

PHP のコードならなんでも名前空間に含めることができますが、 実際に名前空間の影響を受けるのはクラス (抽象クラスやトレイトを含む) とインターフェイス、関数、そして定数だけです。

名前空間を宣言するには、キーワード namespace を使用します。名前空間を含むファイルでは、他のコードより前にファイルの先頭で名前空間を宣言しなければなりません。 ただし declare キーワードは例外です。

 

ふむふむ。

だがしかしnamespaceの前には何も書いてないです。 

 

原因はファイルの保存形式でした。

utf-8で保存していたのですが、BOM付きで保存していました。

phpはこれをnamespaceの前の何かしらとして判断していたようです。

 

utf-8phpを扱うときはBOMなしの形式で保存しましょう!!