2017-01-03 22 views
4

symfonyコードのこの行にDateTime()の前にバックスラッシュが付いているのはなぜですか?Symfony: DateTime()のバックスラッシュはなぜですか?

$this->updated_datetime = new \DateTime(); 

は、私は、これは名前空間とは何かを持っているかなり確信しているが、それはそのように名前空間(グローバル)ルートを参照するためにPHPを作るので誰かが...明確化/

答えて

9

を確認することができます。

あなた可能性も使用のDateTime最初にしてスラッシュなしで行く:

namespace MyCompany\MyBundle\MyController; 

use \DateTime; 

$d = new DateTime(); 

はあなたが MyCompanyの\ MyBundle \ MyController名前空間の下に座って、あなたのコントローラ上で作業していると言います。では、新しいDateTimeインスタンスを作成しようとするとどうなりますか?

オートローダは同じ名前空間でそのファイルを検索しようとします。つまり、完全修飾名MyCompany \ MyBundle \ MyController \ DateTimeのクラスを検索します。結果として、「名前空間からクラスをロードしようとしました...」例外が発生しています。

これは、スラッシュを追加する必要があるためです。これは、ローカルネームスペースではなくグローバルネームスペースの下でクラスを探すようにするためです。

このページをチェックアウト: http://php.net/manual/en/language.namespaces.global.php

関連する問題