在Symfony2中,\ DateTime是什么意思?

时间:2013-03-13 16:14:50

标签: php symfony

在Symfony 2中,这一行意味着什么:

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

\DateTime表示什么?可以从任何地方访问吗?

4 个答案:

答案 0 :(得分:34)

首先是一个小的FYI,这与Symfony没有任何关系 - 只是Symfony2使用namespaces

当不使用名称空间时,datetime class始终可以通过new DateTime()使用 - 这是因为您已经在“根”名称空间中。但是,当您使用命名空间时,只需使用new DateTime()就行不通,因为它会在当前命名空间中查找该类。例如:

<?php

namespace MyApp\Component;

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

这将导致错误(例如Class 'MyApp\Component\DateTime' not found in ...),因为名为DateTime的MyApp\Component命名空间中没有类。

这就是为什么你找到了\DateTime(),它告诉解释器查看类DateTime的“root”(?)命名空间。

您还可以使用use关键字导入DateTime类 - 您的脚本顶部会显示 - 这样您就可以拨打new DateTime()

<?php

namespace MyApp\Component;

use \DateTime;

答案 1 :(得分:3)

请参阅http://www.php.net/manual/en/language.namespaces.global.php

您还应该在文件顶部看到namespace X\Y;\DateTime表示要从全局命名空间中取代DateTime类,而不是X\Y

this DateTime

答案 2 :(得分:2)

正如其他人所说,它引用了全局命名空间,并且DateTime集成在php中,请看这里: http://www.php.net/manual/en/class.datetime.php 所以你不仅可以在symfony中使用它;)

答案 3 :(得分:1)

\ DateTime是一个命名空间的DateTime类。你可能正在查看文件顶部的某个地方有一个使用\ X \ X减速。 \ DateTime应该可以在任何可以声明使用\ X \ X

的地方访问