2011-05-01 57 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(); 
} 

单一对象的全部目的是,总是有一个时间只有一个,让你随时可以在程序的执行过程中再次得到他们而不必使用变量。