2014-01-30 63 views
1

我從來沒有真正使用過PHP命名空間,而且我正在閱讀如何在PHP網站上使用它,包括如何在命名空間代碼和非空閒(全局代碼)中包含文件。試圖瞭解命名空間編碼

來源:http://www.php.net/manual/en/language.namespaces.definitionmultiple.php

我又試圖下面來進行測試:

namespace { 

    $bar = 123; 

} 

namespace moo { 

    $bar = 400; 

} 

namespace { 

    echo $bar . "<br>\n"; 
    //echo moo\$bar . "<br>\n";  

} 

但是我回來是意外..

上面的輸出是:

400 

不應該是123因爲我我沒有引用moo命名空間?此外,如果我取消註釋下一行,則會出現PHP語法錯誤。

我在做什麼錯?

+0

命名空間之後的'{}'形式對我來說是新的,我認爲它只是一個PHP文件開頭的命令,我認爲文檔中有一些說變量總是全局的東西:http: //www.php.net/manual/en/language.namespaces.definition.php –

+0

@JasonSperske那麼它說你必須使用括號,如果你想在同一個文件中使用全局和命名空間代碼。儘管我對這個變量很不好,但這是一個痛苦。 :( – Brett

+0

「強烈建議不要將多個名稱空間合併到同一個文件中」 - 從您引用的php.net頁面開始,您在此嘗試完成什麼?這不是傳統命名空間的使用方式。 –

回答