讓我給你一個類的簡單例子:
<?php
namespace dojo;
class ninja
{
}在上面的示例中,我們在dojo命名空間中創(chuàng)建了一個名為ninja的新類。如果我們沒有使用命名空間,并且我們的應(yīng)用程序中包含了另一個名為ninja的類,那么我們將得到一個錯誤,說明我們不能重新聲明類。
那么命名空間就可以解決這個問題。我們可以創(chuàng)建另一個類,像這樣:
<?php
namespace training;
class ninja
{
}現(xiàn)在,如果我們將這兩個文件都包含在應(yīng)用程序中,就可以很容易地區(qū)分我們想要使用哪個ninja類。
作為一個例子,這里有一些代碼,說明我們將如何使用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();這兩個類是不同的,可能具有不同的功能,因此命名空間允許我們使用相同的類名,并通過它們的名稱空間對它們進(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)我們想要使用另一個ninja文件時,就可以簡單的如下操作:
use training\ninja as ninja;就是這樣!簡單吧!
我想指出的最后一點是,通常在使用命名空間時,你要遵循命名空間的文件夾結(jié)構(gòu),以便更容易找到這些文件的位置。
所以我們的training / ninja.php文件可能會存在于training文件夾中。
因此,想要繼續(xù)在項目中添加易于記憶和常見的類名。只要記得給他們一個命名空間!