如果php中的命名空间需求较多,可以创建多级空间来解决,但这样也产生了许多不便之处。为了使代码部分进行简化,我们又增加了引入的方法,通过use关键字来实现,主要是给对象起别名的方法。下面我们就命名空间的引入好处、use关键字使用、引入实例分别带来详解。
1.命名空间引入好处
(1)命名空间可以声明为多级空间,这个多级空间元素在其他空间内部访问的时候,不得已需要通过完全限定名称方式,这个完全限定名称不方便开发、维护、使用。
(2)为了降低代码的复杂度,可以在当前的空间把指定的空间给引入进来,进而可以方便地通过“限定名称”的方便的形式使用其他空间的元素.
2.使用use关键字
如果引入类与当前空间的类起冲突时,可以使用as起别名;如use App\Student as Stu;
使用use引入后,可以直接使用类名称;$student = new Student()
3.实例
<?php /** *命名空间的导入,本质上就是用一个别名,来简化一个比较长的多级的命名空间名称 * *导入主要针对类空间,PHP5.6以后,也支持常量与函数空间名称导入 * *导入空间默认名称主要用use,空间别名的简化用as *使用use导入空间别名,可用as来自定义别名,防止空间重名 */ namespaceapp\index\controller; constCITY='北京'; functionsay() { return'Helloworld!'; } classUser { publicfunctionhello() { return"I'mfine,thankyou!"; } } namespacemyspace; //不使用use来简化空间名称 echo\app\index\controller\CITY.'<br>'; echo\app\index\controller\say().'<br>'; $user=new\app\index\controller\User; echo$user->hello(); echo'<hr>'; //用use来导入一个命名空间,并起个简短的名称 useconstapp\index\controller\CITY; usefunctionapp\index\controller\say; useapp\index\controller\User; echoCITY.'<br>'; echosay().'<br>'; $user=newUser; echo$user->hello(); echo'<hr>'; //用as来进一步简化空间的名称 useconstapp\index\controller\CITYasC; usefunctionapp\index\controller\sayass; useapp\index\controller\UserasU; echoC.'<br>'; echos().'<br>'; $user=newU; echo$user->hello(); echo'<hr>';