namespace.php
来源:原创
时间:2016-07-23
作者:脚本小站
分类:代码笔记
<?php //============================================================ //------------------命名空间一般的用法----------------------- // 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(); //------------------------------------------------------------ //============================================================