首页 > 代码库 > php 命名空间

php 命名空间

看了几次命名空间,还是有点半知半解,只好在实践的项目中加深对namespace的应用了.

学习namespace,先了解namespace的名称定义

1.非限定名称 :不包含命名空间分隔符的名称     例如: boo; 

2.限定名称:包含命名空间分隔符的名称      例如:foo\boo; 

3.完全限定名称:以命名空间分隔符开头的名称(表示全局空间的类,非命名空间的类)   例如:\foo\boo; 

 

接着了解namespace的命名规则

1.定义namespace之前不能写入任何代码,除了<?php;

2.命名空间就是在文件中开辟了新的文件系统,你可以再文件中定义你想要的布局方式;

3.定义命名空间:

1 <?php2 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 <?php2 namespace my;3 4 function Exception()5 {6 }7 8 namaspace\Exception();    //calls function my\Exception

 

最后说下namespace的作用(解决两类问题)

1.用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突;

2.为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。