嘿,我是 php 命名空间的新手,我正在尝试理解一些东西。我正在关注PRO Php MVC e-book
他们,他们在代码中使用了很多命名空间示例。让我感到困惑的是 和 之间的\Framework\Name
区别Framework\Name
?
您什么时候使用哪个版本,它们之间有什么区别。
嘿,我是 php 命名空间的新手,我正在尝试理解一些东西。我正在关注PRO Php MVC e-book
他们,他们在代码中使用了很多命名空间示例。让我感到困惑的是 和 之间的\Framework\Name
区别Framework\Name
?
您什么时候使用哪个版本,它们之间有什么区别。
它在代码中的使用位置确实有所不同。
例如,在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();
}
}
希望这可以帮助!