2011-09-07 99 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)並在任何需要它們的地方訪問它們可能會更好。