2012-01-14 3 views
0

이것이 가능한지 확실하지 않지만 어쨌든 PHP의 변수 값을 일정한 값으로 확인할 수 있습니다.PHP 변수를 지속적으로 확인하는 방법은 무엇입니까?

+0

값을 "감시"하고 변경된 경우 특정 조치를 취하시겠습니까? – lonesomeday

+0

죄송합니다 어떻게 해야할지 모르겠다, 나는 PHP에 완전한 멍청한 놈이야. – Twister

+1

'register_tick_function'이 그것을 할 수는 있지만, 개발 서버에서 사용하지 않거나 매우 좋은 이유가 있다면 사용하지 말 것을 권장합니다. 이 문제로 해결하려는 문제는 무엇입니까? – Wrikken

답변

1

이렇게하는 방법은 아마도 변수가 아닙니다. 대신 함수를 호출하는 경우, 당신은 훨씬 더 세부적인 조치를 취할 수 있습니다 :

function step() { 
    static $steps = 0; 

    if (++$steps === 100) { 
     header('Location: /foo.php'); 
    } 
} 

그런 다음 step();로 전화를 할 수 있으며, 리디렉션은 함수가 호출 될 때 100 시간을 발생합니다.

$_SESSION 변수 나 데이터베이스 값 또는 정적 변수 대신 데이터를 저장하는 다른 방법을 사용할 수 있습니다.

1

이벤트 구동 솔루션을 선택할 수 있습니다. 점진 당신의 가치를 유지하는 클래스를 구축하고 그 관리 (모니터) :

$myValue = new valueHolder(); 
$myValue->registerCallback(function() { 
    header("location:fooooo.php"); 
}); 

$myValue->increment(); 
$myValue->increment(); 
$myValue->increment(); 
$myValue->increment(); 
//redirection!!!!!! 

사용은 테스트하지 Warning 발생

class valueHolder { 
    private $val = 0; 
    private $cb = null; 
    private $trigger = null; 

    //constructor logic comes here 

    public function increment() { 
     $this->val++; 

     if ($this->val > $yourValueGoesHere) { 
      call_user_func($this->cb); 
     } 

    } 

    public registerCallback($cb) { 
     $this->cb = $cb; 
    } 
} 

정의를 ...)

+0

예, 이것은 훌륭한 해결책입니다 - 내 것과 다르지 않지만 오히려 더 유연하고, 분리되고, 견고합니다. 덕분에 – lonesomeday

+0

. 콜백을 호출해야 할 때를 지정하기 위해 추가로 triggercallback을 추가한다고 생각했습니다. 그 값을 읽는 공공 회원은 물론 너무 빠지다 ...;) – zaphod1984

관련 문제