嘿,我是 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();
}
}
希望这可以帮助!
关于PHP 命名空间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16575071/