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

Hri*_*ari 9 php symfony

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

$task->setDueDate(new \DateTime('tomorrow'));
Run Code Online (Sandbox Code Playgroud)

什么\DateTime意味着什么?可以从任何地方访问吗?

Pri*_*ner 34

一个小的FYI首先,这与Symfony没有任何关系 - 只是Symfony2使用命名空间.

不使用名称空间时,datetime类始终可用new DateTime()- 这是因为您已经位于"根"名称空间中.但是,当您使用命名空间时,只需使用new DateTime()不会工作,因为它将在当前命名空间中查找该类.例:

<?php

namespace MyApp\Component;

class Something
{
   function __construct()
   {
      $dt = new DateTime(); 
   }
}
Run Code Online (Sandbox Code Playgroud)

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

这就是为什么你发现\DateTime(),它告诉解释器查看类的"root"(?)命名空间DateTime.

您还可以使用use关键字导入DateTime类 - 脚本的顶部看起来像 - 这允许您只需调用new DateTime():

<?php

namespace MyApp\Component;

use \DateTime;
Run Code Online (Sandbox Code Playgroud)