2013-04-16 1 views
1

PHP로 넷빈으로 만든 프로젝트가 있고 Zend 프레임 워크를 사용하고 있으므로 모델 뷰 컨트롤러입니다.동일한 클래스에서 전역 변수를 저장하고 사용하지만 PHP를 사용하는 다른 공용 함수

클래스 (newclassController)에는 4 개의 공용 함수가 있습니다. 두 번째 함수에서 전역 변수를 저장하고이를 네 번째 함수에 사용하려고합니다.

매개 변수와 세션 변수로 URL 변수를 보내려고했지만 일부 오류가 발생하여 다른 ideeas가있는 경우 나에게 알려주십시오. 나는 init function에서 변수를 저장하는 경우 그것은 작동하지만 다른 함수에서 그것을 저장할 :
Notice: Undefined variable

참고 :

내가 수익을 시도 모든

이 오류 메시지를 제공합니다.

+0

어때 $ this-> publicFunction() -> yourVariable? –

+0

변수를 매개 변수로 요청에 전달하거나 세션에 저장해야합니다. 이러한 방법으로 오류가 발생하면 시도하고있는 내용과 질문에 오류가 있음을 자세히 설명해야합니다. –

+0

확실하게 :이 데이터를 저장하고 다른 * 요청 *에서 사용하려면 세션 또는 db와 같은 일종의 외부 저장소에 있거나 파일 시스템에 있어야합니다.클래스 멤버 또는 전역 변수로 저장된 모든 데이터는 후속 요청에서 손실됩니다. –

답변

2

를 사용합니다 :

public function init(){ 
    $this->value = 'value'; 
} 

이 값은 컨트롤러의 모든 '동작'에서 사용할 수 있습니다.

이것은 의도적으로 설계된 것입니다.

init() 메서드는 ZF1에서 생성자를 보완하기 위해 사용됩니다. 일반적으로 생성자에 넣을 인수를 추가합니다.

에 대해서는 값을 하나의 동작에서 다른 동작으로 유지하려면 어떤 형태의 저장소를 사용해야합니다.

나중에 동일한 컨트롤러 또는 다른 컨트롤러
//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 
} 

new.phtml보기

<?php echo $this-value ?> 

지금

public function newAction(){ 
    //access the session 
    $session = new Zend_Session_Namespace('number'); 
    //assign the value to the view 
    $this->view->value = $session->value; 
} 

중요한 것은 기억 : 예를 들어

PHP와 특히 Zend Framework 1을 사용하면 모든 요청이 전체 응용 프로그램을 실행합니다.

이것은 처음부터 나를 트 랩핑 한 개념이었습니다. 새로운 페이지를 요청할 때마다 Zend Framework 애플리케이션이 처음부터 실행되므로 한 요청에서 다음 요청으로 살아남 아야하는 모든 데이터를 저장해야합니다.

2
public function__constructor(){ 
$this->value = 'something'; 
} 

$this->value 

클래스의 생성자에서 변수 decalre 클래스

에서 '무언가'를주고 내가 내 생각을 그리워하지 않는 한 당신이 값 시작할 때 그것을

+0

_Notice : 정의되지 않은 속성 : _ 이것은 내가 얻는 것입니다. – user2223698

+0

'private $ value' 클래스에서 선언 한 다음'$ this-> value'를 사용하십시오 –

+0

메소드가 부분적으로 작동합니다. 내가 함수 initAction, 하나의 indexAction 및 하나의 tryAction을 가지고 있음을 의미합니다. initAction에 값을 저장하면 모든 함수에서 인식되지만, indexAction에서 저장하면 안됩니다. 그리고 내가 원하는 것은 indexAction에 저장하고 tryAction에서 사용하는 것입니다. – user2223698

관련 문제