2011-05-01 98 views
0

我現在的網站運行這個樣子,使用registry.php來存儲對象

的index.php

  • 包括config.php->

的config.php

  • 設置變量,$ siteRegistry = Registry :: singleton();

  • 也會感染url並根據url說什麼創建新對象,因此www.site.com/login會創建新的登錄對象。

loginObject

  • 內的config.php創建

  • 創造了新的loginModel

loginModel

  • 需要訪問$ siteRegistry但顯示以下錯誤,

注意:未定義的變量:siteRegistry在F:\項目\程序\型號\ loginModel.php上線37

這是行37 -

$siteRegistry->storeObject("PDOExtender", "DBO"); 

我相信問題是它無法從config.php中找到$ siteRegistry變量,有誰知道如何解決這個問題?

+0

你有沒有在'loginModel'中加入'config.php'? '$ siteRegistry'的範圍是什麼?它是全球性的嗎? – 2011-05-01 21:29:49

+1

顯示我以前的36行,我會試着去理解它們。 – 2011-05-01 21:50:52

+0

那麼錯誤基本上說,$ siteRegistry不存在。但是 - 沒有更多的代碼,就像@OZ_所說的那樣,它或多或少地很難幫助你解決這個問題,你的錯誤就是發生了這個錯誤。 – Richard 2011-05-01 22:03:24

回答

1
$siteRegistry = Registry::singleton(); 

由於註冊表(什麼都可能是)是一個單沒有必要使用這個$ siteRegistry變量作爲一個全球性的。 實際上,您應該始終在每個要使用它的功能中調用Registry::singleton。 如果是長只需要創建一個小包裝函數:

function reg() { 
    return Registry::singleton(); 
} 

單一對象的全部目的是,總是有一個時間只有一個,讓你隨時可以在程序的執行過程中再次得到他們而不必使用變量。