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