我有一个使用php进行netbeans的项目,我正在使用Zend框架,所以它是模型 - 视图 - 控制器。
进入一个类(newclassController),我有4个公共函数。 我想存储第二个函数的全局变量,并将其用于第4个函数。
我试图将URL中的变量作为参数和SESSION变量发送,但是我遇到了一些错误,所以如果你有其他的想法,请点击我。
所有我尝试过的返回都会显示以下错误信息:
Notice: Undefined variable
注意:如果我将变量存储在init function
中,但是我想将其存储在另一个函数中,则它可以正常工作。
答案 0 :(得分:2)
public function__constructor(){
$this->value = 'something';
}
$this->value
会在课堂上给出'某事'
在类的构造函数中声明变量并使用它
答案 1 :(得分:2)
除非我在启动值时错过了我的猜测:
public function init(){
$this->value = 'value';
}
该值可用于控制器中的所有“操作”。
这是设计的。
在ZF1中使用init()
方法来补充构造函数。在这里你可以添加通常可以放在构造函数中的参数。
为了持久化从一个动作到另一个动作的值,必须使用某种形式的存储。
例如:
//a verbose example
public function indexAction(){
//initiate a variable
$i = 100;
//start a new session and assign a name to it
$session = new Zend_Session_Namespace('number');
//assign the value to the namespace
$session->value = $i
}
稍后在同一个控制器或甚至另一个控制器
public function newAction(){
//access the session
$session = new Zend_Session_Namespace('number');
//assign the value to the view
$this->view->value = $session->value;
}
现在在new.phtml视图中
<?php echo $this-value ?>
使用PHP特别是Zend Framework 1时要记住的一件重要事情是,每个请求都运行整个应用程序。
这是一个让我在开始时绊倒的概念。每次请求新页面时,Zend Framework应用程序都是从头开始运行的,因此必须保存(持久化)从一个请求到下一个请求生存的任何数据。