Zend控制器中的全局变量

时间:2012-10-15 08:13:53

标签: zend-framework

   class UserController extends Zend_Controller_Action
  {
      protected $varGlobal;
      public function oneAction()
      {
           $this->varGlobal=0;

           .........
       }
      public function twoAction()
       {
            $temp=$this->varGlobal;//temp return null;
        }

  }

如何在执行oneAction()之后保留varGlobal的值? 谢谢!

3 个答案:

答案 0 :(得分:1)

您还可以尝试静态属性:

class UserController extends Zend_Controller_Action
  {
      protected static $varGlobal;
      public function init(){
            self::$varGlobal=0;
      }
      public function oneAction()
      {
           self::$varGlobal=15;

           .........
       }
      public function twoAction()
       {
            $temp=self::$varGlobal;//temp return 0,don't change value after excute oneaction();
        }

  }

答案 1 :(得分:0)

嗯,只要您在同一个对象上调用$this->varGlobal方法,twoAction就会一直存在。对于每个请求,都会创建新对象。因此,如果您的下一个请求转到twoAction,则不会触发一个操作。

为了为每个对象设置变量,您可以使用init函数并在那里初始化变量。

答案 2 :(得分:0)

为什么不使用Zend_Controller_Action :: _ setParam()和Zend_Controller_Action :: _ getParam()? 还是Zend_Registry?