2011-11-01 282 views
0

變量的作用域這裏是我的情況:麻煩與PHP

我正在使用我寫了與外部XML文檔工作幾個功能的PHP項目。我想要做的是將相同的functions.php文件導入許多不同的頁面,這些頁面都使用相同的代碼。問題是xml文件的路徑並不總是相同的,而且通常依賴於當前顯示的視圖。

我所試圖做的是基本上以前我include 'path-to-functions.php';宣佈在我看來一個$source = 'path-relative-to-view';,然後具備的功能訪問的必要$源變量時。通過這種方式,我不必爲每個不同的目錄重寫函數。

我認爲這是可能的,但不幸的是,我還沒有足夠使用PHP知道。

+0

對不起,如果我誤解。你所說的是你的函數足夠通用,但你有一個硬編碼的$源? –

回答

1

您將不得不在每個將使用它的函數中聲明$source全局。

function abc 
{ 
    global $source; 
    //--use $source 
} 
+0

通常不建議 – 2011-11-01 04:20:49

+0

即使不推薦,它肯定是我應該知道如何使用的東西。我很難理解如何使用它的文檔,但我想我只需要你一句話!謝謝! –

2

你可以使用全局變量 - 但不要,全局變量不好。

只需重寫函數以將文件路徑作爲其參數之一。

你可以做的另一件事是將它們分組在一個類中。然後使用該類的成員變量來存儲他們將能夠訪問的路徑。

+0

這正是我要採用的路徑:首先,編寫方法簽名以包含參數,然後,如果需要的話,將其分類。沒有通過方法sig重寫並直接將它分類是很好的,因爲它消除了重複地將源作爲參數傳遞的需要。這只是創建,設置和開始射擊funcs。 – abelito

+0

請問爲什麼全局變量如此糟糕? –

+1

http://blog.lukemorton.co.uk/post/1442685644/global-variables-bad – 2011-11-01 04:26:24