//============================================================
//------------------命名空间一般的用法-----------------------
// 1.定义本文件的命名空间名称(可省略)
namespace speace_name;
// 2.引入使用了命名空间的文件
include 'namespace.php';
// 3.导入命名空间
use \one_speace_dir\two_speace_dir\method_name;//method_name 为类名
// 4.使用导入的方法
new method_name();
/* 如果不适用 use 导入命名空间,还可以直接调用文件中的方法
效果相同 */
new \one_speace_dir\two_speace_dir\method_name();
//====================命名空间有效范围=======================
//------------------------------------------------------------
namespace Yourspace;
// 命名空间对变量无效
// 有效:
// 对函数有效
// 对常量有效
// 对类名有效
//=========================子命名空间========================
//------------------------------------------------------------
// 子命名空间 \
namespace My\space;
//======================定义多个命名空间=====================
//------------------------------------------------------------
// 同一个文件里定义多个命名空间
namespace My;
namespace Yours;
//================与系统函数同名的函数访问模式==============
//------------------------------------------------------------
namespace My;
function var_dump(){}
//此处调用自定义函数
var_dump();
namespace Yours;
//此处直接找全局函数
var_dump();
//=====================命名空间里访问全局====================
//------------------------------------------------------------
namespace My{
// 目录一
};
namespace Yours{
// 目录二
//如果自己里面没有就去全局里面找
};
//括号外不可有任何东西
namespace{
//访问全局函数
//函数名不可与系统函数同名
}
//========================限定名称============================
//------------------------------------------------------------
// 非限定名称test();
// 限定名称My\test();
// 完全限定名称\My\test();
namespace Yours;
//访问全局的test()
\My\test();
//============================================================
//----------------------当前命名空间名称---------------------
namespace My;
function test(){
}
//此时namespace代表当前
namespace\test();
//当前命名空间名称
echo __NAMESPACE__;
//============================================================
//-----------------------导入命名空间------------------------
namespace My;
class Person{}
namespace Yours;
// 导入 如果后面是一个类名 那门use的作用就是导入
use \My\Person;
class Meizi extends Person{}
//============================================================
//---------------------导入命名空间取别名--------------------
namespace My\test\aaa\bbb;
function test(){}//在这个空间定义函数
namespace Yours;
//取别名
use \My\test\aaa\bbb as hello;
hello\test();//在这个空间调用
//============================================================
//-------------------命名空间的跨文件调用--------------------
namespace My;
//导入文件
include 'namespace.php';
//导入命名空间
use \Yours\aaa\Person;//Person 为类名
//同 new \Yours\aaa\Person();
new Person();
//------------------------------------------------------------
//============================================================