[PHP]命名空间的一些要点

1.命名空间前不能接"";

namespace MyProjectSubLevel; // it's right;
namespace MyProjectSubLevel; // it's wrong;

2.访问命名空间下的类/常量/函数是可以带""的,可以参考手册命名空间与动态语言特征

namespace namespacename;
const constname = "namespaced";
echo constant('
amespacenameconstname'), "
"; // prints namespaced
echo constant('namespacenameconstname'), "
"; // also prints namespaced

3.use引入类/常量/函数时,跟访问命名空间下的类/常量/函数一样,是可带可不带""的

namespace namespacename;
use Exception;
$a = new Exception('hi');

或者

namespace namespacename;
use Exception;
$a = new Exception('hi');

 4.没有声明命名空间的地方统一用根作为命名空间,即""

5.在命名空间中调用别的命名空间,必须按照当前命名空间作为绝对或相对路径

namespace imageHandlerstamp;
class Common extends imageHandlerDecorator
{
}
//在imageHandlerstamp下调用上一层的Decorator,需要完整(绝对)路径:imageHandlerDecorator

 6.基于字符串变量动态调用的类/常量/函数名,必须使用绝对路径

$o = 'Rules';
new $o();//如果Rules所在的命名空间不是根,这里的实例化将提示找不到该类
原文地址:https://www.cnblogs.com/yiyide266/p/9387893.html