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

    } 

excuted oneAction()을 수행 한 후에 varGlobal의 가치를 유지하려면 어떻게해야합니까? 감사합니다.Zend 컨트롤러의 전역 변수

답변

0

글쎄, $this->varGlobal은 동일한 개체에서 twoAction 메서드를 호출하는 동안 지속됩니다. 모든 요청마다 새로운 객체가 생성됩니다. 따라서 다음 요청이 twoAction으로 이동하면 하나의 작업이 시작되지 않습니다.

모든 개체에 대해 변수를 설정하려면 init 함수를 사용하고 변수를 초기화 할 수 있습니다.

0

Zend_Controller_Action :: _ setParam() 및 Zend_Controller_Action :: _ getParam()을 사용하지 않는 이유는 무엇입니까? 또는 Zend_Registry?

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

    }