2012-01-09 109 views
0

我想從一個類使用捲曲標題功能選項。我試過把函數放在類裏,但是curl找不到它們。所以我把他們我需要它在函數內部下面的代碼,這是適用於部分:功能內函數找不到變量

$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'); 

當我把回聲聲明htWrite爲緩衝區,它回聲出來就好了。但是,如果我稍後在$ 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')); 
    } 
}