PHP DateTime类名称空间

Mig*_*iro 45 php datetime namespaces

我正在使用symfony2框架,我想使用PHP的DateTime类(PHP版本是5.3).

声明在这里:

namespace SDCU\GeneralBundle\Entity;

class Country
{
   public function __construct(){
       $this->insertedAt = new DateTime();
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,在执行此构造函数时,我收到一条错误消息,指出没有"SDCU\GeneralBundle\Entity\DateTime"类.我一直在寻找DateTime的命名空间,但没有成功......任何想法?

str*_*str 81

DateTime在全局命名空间中,并且因为" 类名始终解析为当前命名空间名称 ",您必须使用它\DateTime.

或者使用以下方法导入包:

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

  • 您还可以在命名空间和类声明之间放置`use\Datetime;`,并继续使用`DateTime`.另一点:这也适用于"例外"!捕获`异常`你应该捕获`\ Exception`不会出错,你只是没有抓到任何东西! (14认同)

Gla*_*vić 23

在全局命名空间中使用类的更好解决方案是在课前使用"use"关键字而不是"\".

namespace SDCU\GeneralBundle\Entity;
use \DateTime;

class Country
{
   public function __construct(){
       $this->insertedAt = new DateTime();
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果你在本地命名空间中有一个类与全局命名空间中的一个同名,你_have_前缀为`\\`,或者你只是导入本地类. (4认同)