从php 5.3 版本后,加入了命名空间的定义,在PHP中命名空间的作用就是防止类的重复。就相当于windows的一个文件夹中不能有两个相同名字的文件,所以继续增加两个文件夹把文件放进去,防止文件名重复。
PHP命名空间会在每个类的开始前定义好命名空间,使用的时候去调用命名空间,即使某个文件夹中有两个相同名字的类通过命名空间可以使程序继续运行。可以理解为给类定义一个文件夹。
PHP命名空间默认使用的是找离当前代码最近的那个定义的命名空间。
示例:
<?php namespace testspace1; //定义命名空间 class test{ public $name='命名空间类1'; echo $name; } namespace testspace2; //定义命名空间 class test{ public $name='命名空间类2'; echo $name; } $class1 = new estspace1 est(); //使用指定命名空间中的类 $class2 = new estspace2 est(); //使用指定命名空间中的类 ?>
PHP使用了命名空间后,即使出现了重复的类,重要定义了不同的命名空间,程序同样可以运行。
命名空间和子空间,相当于文件夹和文件夹下的文件夹区别
namespace test; //命名空间 namespace test est1; //子空间
命名空间的别名
<?php namespace testspace3; //定义命名空间 class test{ public $name='命名空间类3'; public function index(){ echo $this->name; } } //使用别名 use testspace3 est as names; //实例化别名空间的类 $a = new names(); echo $a ->index(); ?>
公共空间:
如果没有定义的命名空间,使用的是公共空间,当文件通过include文件引入的函数时,没有定义的命名空间的函数或类,都也是公共空间,公共空间的访问通过 来访问空间。