2012-10-15 3 views
1
class UserController extends Zend_Controller_Action 
    { 
     protected $varGlobal; 
     public function oneAction() 
     { 
      $this->varGlobal=0; 

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

    } 

comment conserver la valeur de varGlobal après oneAction()? Merci!Variable globale dans le contrôleur Zend

Répondre

0

Bien, $this->varGlobal persiste tant que vous appelez twoAction méthode sur le même objet. Pour chaque demande, un nouvel objet est créé. Donc, si votre prochaine demande va à twoAction, une action ne sera pas déclenchée.

Afin de définir la variable pour chaque objet, vous pouvez utiliser la fonction init et y initialiser des variables. Pourquoi ne pas utiliser Zend_Controller_Action :: _ setParam() et Zend_Controller_Action :: _ getParam()?

0

Pourquoi ne pas utiliser Zend_Controller_Action :: _ setParam() et Zend_Controller_Action :: _ getParam()? ou Zend_Registry?

1

Vous pouvez également essayer les propriétés statiques:

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(); 
     } 

    }