從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