2011-09-07 102 views
1

我有一个php文件,其中包含变量列表(错误消息列表),没有别的。在Zend框架中包含php文件的问题

在我的控制器

,我使用下面的行我的控制器的定义之前正确的文件包括

require_once PATH_TO_FILE; 
class mycontrollerController extends Zend_Controller_Action { 

all my actions here 

} 

所以,如果一切顺利的话,我可以从任何动作在我的控制器访问任何变量,但它不工作,我得到一个错误消息,说我试图访问的变量没有定义。
但如果我在动作中包含文件,一切工作完美,我可以访问变量。

我不知道为什么包括在控制器顶部的文件看起来没有工作。

回答

2

因为在面向对象的程序设计中,类和方法是这样设计的: 在类之前包含文件,并不意味着你的方法可以访问它,就像在程序化程序化中一样。

如果您想要访问这些变量,您必须在动作范围内“使它们可见”。

我建议你更多地了解OOP和Zend框架的位置: http://framework.zend.com/manual/en/

http://php.net/manual/en/language.oop5.php

1

其实,如果你的类定义之前粘贴您的变量,它不会工作。只有班级内的代码才会被考虑在内。

在我看来,将这些变量作为类的成员(可以自动加载,并且不需要使用require_once)并在任何需要它们的地方访问它们可能会更好。