1
嘿,我是新的PHP命名空间,我试图理解一些东西。我正在关注PRO Php MVC e-book
,他们在代码中使用了很多名称空间示例。有什么令我困惑的是\Framework\Name
和Framework\Name
之间的区别?PHP命名空间问题
你什么时候使用哪个版本,它们之间有什么区别。
嘿,我是新的PHP命名空间,我试图理解一些东西。我正在关注PRO Php MVC e-book
,他们在代码中使用了很多名称空间示例。有什么令我困惑的是\Framework\Name
和Framework\Name
之间的区别?PHP命名空间问题
你什么时候使用哪个版本,它们之间有什么区别。
它在代码中使用的位置真的不同。
例如,在一个use
声明中,都可以采用:
<?php
namespace Framework;
use Framework\Name;
// OR
use \Framework\Name;
// Both do the same thing
但是,当你实际上是在代码中,没有在命名空间的前面\
,将会使代码看起来在文件的当前命名空间中。例如:
<?php
namespace Framework;
// ...
// The below will actually look for the class `\Framework\Framework\Name`
$class = new Framework\Name();
// However, this will look for, and hopefully find `\Framework\Name`
$class = new \Framework\Name();
这可以让你做这样的事情有一个子名字空间use语句,并缩短代码您的来电:例如
<?php
namespace Framework;
use Framework\Cache;
class test {
public function __construct() {
// Below gets `\Framework\Cache\Memcache`
$memcache = new Cache\Memcache();
// Below gets `\Framework\Cache\Apc`
$apc = new Cache\Apc();
}
}
希望这有助于!
好的,谢谢,这对我更有意义 – Dblock247