<?php
/*
命名空间使用
PHP 命名空间中的类名可以通过三种方式引用:
1、非限定名称,或不包含前缀的类名称
2、限定名称,或包含前缀的名称
3、完全限定名称,或包含了全局前缀操作符的名称
*/
namespace a{
function a(){
echo __NAMESPACE__,"<br>";
}
\a();//根命名空间
a();
b\a();//子命名空间
\a\b\a();//子命名空间用根命名空间形式访问
test();//当前命名空间不存在方法,直接找根命名空间 主要是为了命名空间的方法不用每次都加前缀\
\test();//强制根命名空间形式访问
}
namespace b{
function a(){
echo __NAMESPACE__,"<br>";
}
a();
\a\a();
\a\b\a();
}
namespace a\b{
function a(){
echo __NAMESPACE__,"<br>";
}
a();
\a\b\a();//访问自己用根命名空间形式访问
\a();
\a\a();//父命名空间也要使用根命名空间形式访问
\b\a();
}
namespace {
function a(){
echo __NAMESPACE__,"根命名空间<br>";
}
function test(){
echo __NAMESPACE__,"根命名空间<br>";
}
a();
a\a();
b\a();
a\b\a();
// 根命名空间形式访问 其实没必要 不过看起来比较直观
\a();
\a\a();
\b\a();
\a\b\a();
}