2011-08-19 89 views
1

我知道默認情況下,函數調用默認會先到當前命名空間,如果沒有找到,將會檢查全局命名空間。有沒有什麼辦法可以改變這種行爲,也許可以使用「以某種方式使用某些東西」,以便它只檢查全局命名空間?命名空間函數默認爲全局優先

一個硬性規則是我無法修改名稱空間內的函數調用。

例如在全局命名空間中的問題

function get_something() { 
    return 1; 
} 

文件

namespace new; 

$a = get_something(); 

function get_something() { 
    return 2; 
} 

我想$一個被評估爲1。有沒有辦法做到這一點,而無需更新所有的$一個=命名空間文件中的get_something()引用?

+0

_你爲什麼寫一個函數,當你不想使用它?爲什麼你使用相同的函數名稱,當你看到,你不能以你喜歡的方式處理碰撞? (命名空間函數像全球範圍內的其他函數一樣是一個壞習慣) – KingCrunch

回答

1

您可以使用

$a = \get_something(); 

明確目標的全局命名空間。

+0

這是我不能做的事情的唯一要求 – matthewdaniel

+0

好吧 - 對不起... – madflow

+0

您_cannot_不會添加黑色閃爍?!? Oo – KingCrunch