嘿,我是php命名空间的新手,我正试图理解某些东西。我关注PRO Php MVC e-book
,他们在代码中使用了很多名称空间示例。令我困惑的是\Framework\Name
和Framework\Name
之间的区别?
您何时使用哪个版本,以及它们之间的区别。
答案 0 :(得分:3)
它在代码中的使用位置确实存在差异。
例如,在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();
}
}
希望这有帮助!