2013-07-15 43 views

回答

1

大概,有問題的文件是在它自己的命名空間下。

它的使用使您不必在代碼中使用\DateTime

+0

感謝這是最簡潔的答案。 –

1

此代碼是因爲源文件可能還包含namespace定義。這意味着,你可以在namespace定義後只與一家領先的\訪問內置類:

,如:

namespace Foo; 

$dt = new \DateTime(); 

爲了防止自己打字領先\或爲了使其能夠包括一些遺留代碼,它們將類別別名爲

2

開發人員這樣做是爲了讓他們的生活更輕鬆一些,並且在名稱空間內工作時代碼更漂亮一些。解釋一下...

您可以使用命名空間來防止命名與不同框架的命名衝突。假設你在名稱空間「MyApp」中工作。現在,因爲你現在處於命名空間中,所以你不能使用沒有前導''的php本地類,因爲這些本地類生活在global namespace(你在類名之前用'\'標識)。因此,如果您需要使用本地DateTime類,則必須將其與反斜槓 - \ DateTime一起使用。

但是,如果您知道要使用它們,也可以從其他命名空間導入事物 - 在命名空間聲明之後使用使用關鍵字。這樣,您不必使用將要使用的類的完整名稱空間名稱,而只需使用類名稱本身就像您習慣於在沒有名稱空間的情況下工作一樣。

namespace MyApp; 
use DateTime; 

將導入\ DateTime類到您的MyApp的命名空間,有效地讓你只是在你的代碼中使用日期時間。

您應該閱讀更多關於php's website上的命名空間。關於命名空間的內容比我在本文中可能涉及的要多。

+0

我已經知道命名空間是什麼,我只是不確定爲什麼我們需要做「使用DateTime」而沒有任何前綴路徑。但是給了你高票。 –

相關問題