2012-01-09 4 views
0

클래스에서 curl headerfunction opt 사용하려고합니다. 클래스 내부에 함수를 넣으려고했는데 컬이 그렇게 찾지 못했습니다. 그래서 나는 그것을 필요로하는 함수 안에 넣어 여기에 적용되는 코드의 부분 :. 나는 버퍼 htWrite에 에코 문을 넣어함수 내부 함수 찾을 수 없습니다 변수

$ht = array(); 
    $t = array(); 
    function htWrite($stream,$buffer) 
    { 
     $ht[] = $buffer; 
     return strlen($buffer); 
    } 
    function tWrite($stream,$buffer) 
    { 
     $t[] = $buffer; 
     return strlen($buffer); 
    } 

    curl_setopt($ch, CURLOPT_HEADER, true); 
    curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'htWrite'); 
    curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'tWrite'); 

, 그것은 잘 밖으로 메아리가. 하지만 나중에 $ ht에 print_r 문을 쓰면 비어 있다고 나와 있습니다. 더 자세한 조사에 따르면 자체 $ ht 변수가 생성됩니다. 왜냐하면 그 행을 제거하면 $ ht가 함수에 따라 null이되기 때문입니다. 이 문제를 해결하려면 어떻게해야합니까?

답변

2

당신은 당신이 객체 메소드를 지정할 수있는 방법을 살펴볼 필요가 callbacks로 :

class Foo { 
    public function Bar() { 
     // do whatever 
    } 

    public function Test() { 
     $ch = curl_init('http://www.google.com'); 
     curl_setopt($ch, CURLOPT_HEADERFUNCTION, array($this, 'Bar')); 
    } 
} 
관련 문제