讓我給你一個(gè)類的簡單例子:
?php
namespace Dojo;
class Ninja
{
}
在上面的示例中,我們?cè)贒ojo命名空間中創(chuàng)建了一個(gè)名為Ninja的新類。如果我們沒有使用命名空間,并且我們的應(yīng)用程序中包含了另一個(gè)名為Ninja的類,那么我們將得到一個(gè)錯(cuò)誤,說明我們不能重新聲明類。
那么命名空間就可以解決這個(gè)問題。我們可以創(chuàng)建另一個(gè)類,像這樣:
?php
namespace Training;
class Ninja
{
}
現(xiàn)在,如果我們將這兩個(gè)文件都包含在應(yīng)用程序中,就可以很容易地區(qū)分我們想要使用哪個(gè)Ninja類。
作為一個(gè)例子,這里有一些代碼,說明我們將如何使用Ninja類:
?php
// require both of our ninja classes
require "Dojo/Ninja.php";
require "Training/Ninja.php";
// create a new Ninja in the Dojo namespace
$ninja1 = new Dojo\Ninja();
// create a new Ninja in the Training namespace
$ninja2 = new Training\Ninja();
這兩個(gè)類是不同的,可能具有不同的功能,因此命名空間允許我們使用相同的類名,并通過它們的名稱空間對(duì)它們進(jìn)行區(qū)分。你還可以使用PHP use函數(shù)使代碼更具可讀性。例如,假設(shè)我們只想使用Ninja而不是引入Dojo\Ninja。
我們可以這樣做:
?php
// require both of our ninja classes
require "Dojo/Ninja.php";
require "Training/Ninja.php";
use Dojo\Ninja as Ninja;
$my_ninja = new Ninja();
當(dāng)我們想要使用另一個(gè)Ninja文件時(shí),就可以簡單的如下操作:
use Training\Ninja as Ninja;
就是這樣!簡單吧!
我想指出的最后一點(diǎn)是,通常在使用命名空間時(shí),你要遵循命名空間的文件夾結(jié)構(gòu),以便更容易找到這些文件的位置。
所以我們的Training / Ninja.php文件可能會(huì)存在于Training文件夾中。
因此,想要繼續(xù)在項(xiàng)目中添加易于記憶和常見的類名。只要記得給他們一個(gè)命名空間!
您可能感興趣的文章:- php的命名空間與自動(dòng)加載實(shí)現(xiàn)方法
- PHP命名空間定義與用法實(shí)例分析
- php命名空間設(shè)計(jì)思想、用法與缺點(diǎn)分析
- PHP進(jìn)階學(xué)習(xí)之命名空間基本用法分析
- PHP中命名空間的使用例子
- PHP命名空間簡單用法示例
- PHP命名空間與自動(dòng)加載類詳解
- PHP命名空間namespace及use的簡單用法分析
- 如何理解PHP核心特性命名空間