看了几次命名空间,还是有点半知半解,只好在实践的项目中加深对namespace的应用了.
学习namespace,先了解namespace的名称定义:
1.非限定名称 :不包含命名空间分隔符的名称 例如: boo;
2.限定名称:包含命名空间分隔符的名称 例如:foo\boo;
3.完全限定名称:以命名空间分隔符开头的名称(表示全局空间的类,非命名空间的类) 例如:\foo\boo;
接着了解namespace的命名规则
1.定义namespace之前不能写入任何代码,除了<?php;
2.命名空间就是在文件中开辟了新的文件系统,你可以再文件中定义你想要的布局方式;
3.定义命名空间:
1 <?php 2 namespace hello\world\baby\love; 3 use hello\world\baby\love as love; //使用use可以简化namespace的名称; 4 function tell() 5 { 6 echo "lovely baby"; 7 } 8 9 love\tell();
4.常量__NAMESPACE__的值是包含当前命名空间名称的字符串;
5.关键字namespace可用来显示访问当前命名空间或子命名空间的元素:
1 <?php 2 namespace my; 3 4 function Exception() 5 { 6 } 7 8 namaspace\Exception(); //calls function my\Exception
最后说下namespace的作用(解决两类问题):
1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突;
2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。