为什么这行Symfony代码之前有反斜杠DateTime()?
$this->updated_datetime = new \DateTime();
Run Code Online (Sandbox Code Playgroud)
我很确定这与NameSpaces有关,但有人可以确认/澄清......
Sta*_*hyn 13
因为它使php以这种方式引用根(全局)命名空间.
您也可以先使用 DateTime,然后不使用斜杠:
namespace MyCompany\MyBundle\MyController;
use \DateTime;
$d = new DateTime();
Run Code Online (Sandbox Code Playgroud)
假设您正在使用位于MyCompany\MyBundle\MyController命名空间下的控制器.那么当您尝试创建新的DateTime实例时会发生什么?
Autoloader尝试在相同的命名空间下找到它,即它查找具有完全限定名称MyCompany\MyBundle\MyController\DateTime的类.结果 - 您正在获取" 尝试从命名空间加载类... "异常.
这就是你需要添加斜杠的原因 - 它使php在全局命名空间而不是本地命名空间中查找类.
看看这个页面:http: //php.net/manual/en/language.namespaces.global.php
| 归档时间: |
|
| 查看次数: |
1668 次 |
| 最近记录: |