php中的namespace 命名空间

Posted Sweet小马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php中的namespace 命名空间相关的知识,希望对你有一定的参考价值。

名字解释:

 namespace(命名空间),命名空间是从php5.3开始支持的功能。作用主要有两个:1.可以避免类名取得过长。2.当在多个框架配合使用时,同名的类之间不会冲突。

命名空间,看名字就知道,目的就是为了命名的,不然咋不叫QQ空间 盗梦空间 七度空间。额 好像有奇怪的掺进来了。


 

下面是示例代码:

 1 //在test1.php 中有一个类 叫做Person,它放在一个叫shop的namespace里。
 2 <?php
 3     namespace shop;//这个声明要放在php文件的最上面。就算是header也要让路。
 4 
 5     header(‘content-type:text/html;charset=utf-8‘);
 6 
 7     class Person {
 8       public $name = ‘Leonard‘;
 9     }
10 ?>
11 //在同级目录的test2.php中也有一个叫Person的类,它放在一个叫admin的namespace中
12 <?php
13 
14     namespace admin;//上面可以有空白行。别的都不行
15 
16     include_once(‘./test.php‘);
17 
18     use shop as s;//这里就引用了这个shop命名空间。要使用test1.php中的类就必须写上这行。as的作用是简写命名空间的名字。
19 
20     class Person {
21       public $name = ‘Sheldon‘;
22     }
23 
24     $p1 = new s\Person();//上面用了as简写,s指代命名空间shop。没有用as的话就用 new shop\Person()来实例化对象。
25     echo $p1->name;//Leonard
26 
27     $p2 = new Person();//不写命名空间时,就近在自己的命名空间里找Person类,找不到就报错咯。
28     echo $p2->name;//Sheldon

 


以上是关于php中的namespace 命名空间的主要内容,如果未能解决你的问题,请参考以下文章

PHP 命名空间(namespace)

18PHP 命名空间(namespace)

PHP 命名空间(namespace)

php命名空间的引入问题 include namespace

关于命名空间namespace

PHP命令空间namespace及use的用法实践总结