9

Symfony 2では、この行はどういう意味ですか?

$task->setDueDate(new \DateTime('tomorrow'));

\DateTimeを意味しますか?どこからでもアクセスできますか?

4

4 に答える 4

34

小さな参考までに、これはSymfonyとは何の関係もありません-Symfony2が名前空間を使用しているだけです。

名前空間を使用しない場合、datetimeクラスは常にから利用できnew DateTime()ます。これは、すでに「ルート」名前空間にいるためです。new DateTime()ただし、名前空間を使用している場合は、現在の名前空間でそのクラスを検索するため、単に使用しても機能しません。例:

<?php

namespace MyApp\Component;

class Something
{
   function __construct()
   {
      $dt = new DateTime(); 
   }
}

DateTimeという名前空間Class 'MyApp\Component\DateTime' not found in ...内にクラスがないため、これによりエラーが発生します(例)。MyApp\Component

\DateTime()これが、クラスの「ルート」(?)名前空間を調べるようにインタプリタに指示するを見つけた理由ですDateTime

キーワードを使用してクラスuseをインポートすることもできます(スクリプトの上部は次のようになります)。これにより、次のように呼び出すことができます。DateTimenew DateTime()

<?php

namespace MyApp\Component;

use \DateTime;
于 2013-03-13T16:29:19.247 に答える
3

http://www.php.net/manual/en/language.namespaces.global.phpを参照してください

namespace X\Y;また、ファイルの上部にが表示されるはずです。\DateTimeこれは、クラスDateTimeが。ではなくグローバル名前空間から取得されることを意味しますX\Y

つまり、このDateTime

于 2013-03-13T16:17:24.000 に答える
2

他の人が言ったように、それはグローバル名前空間を参照し、DateTimeはphpに統合されてい ます。http ://www.php.net/manual/en/class.datetime.phpを見て 、symfonyだけでなく使用できるようにしてください;)

于 2013-03-13T16:30:33.857 に答える
1

\ DateTimeは、名前空間化されたDateTimeクラスです。おそらく、ファイルの先頭に\ X\X減速を使用している場所があります。\ DateTimeは、\ X\Xの使用を宣言できる場所ならどこからでもアクセスできる必要があります

于 2013-03-13T16:16:19.120 に答える