2014-06-05 41 views
0

看到從password_compat在PHP中這條線,我不知道它做什麼:這種情況下只有`namespace`是什麼意思?

namespace { 
    //... 
    } 

它是類似於JavaScript中的匿名函數包裝一些代碼?它的目的是什麼?

注:我知道如何正常使用的命名空間,我只是不明白這一點,因爲它看起來像一個命名空間,但沒有任何,對我來說,到目前爲止,沒有任何目的。

+0

我認爲這是強迫它在所有PHP名稱空間的根目錄'/' –

+0

這是一個空的名稱空間,這意味着它是全局的 –

回答

1

它聲明代碼位於全局名稱空間中。這樣做的目的是在後面的文件中有兩個函數在私有名稱空間中實現,PHP要求如果文件中使用了任何名稱空間,則文件中的第一個關鍵字必須是namespace。所以要在同一個文件中混合全局和名稱空間的代碼,這就是它需要的樣子。

查看https://github.com/ircmaxell/password_compat/commit/88911e6abebb324cca88f546f04d6e71ce778bd3用於特定提交。

+0

該提交是一個很好的附加答案,謝謝! –

0

該定義旨在確保包含該文件的文件加載到全局名稱空間的中。看看this answer

namespace // empty namespace means global 
{ 
    // Ensure everything you put here belongs the global namespace 
} 

但是,技術上來講,正是一樣不會宣佈任何命名空間可言。在這兩種情況下,它中的所有內容都將屬於全局命名空間

相關問題