2012-01-09 14 views
0

私はクラスからcurl headerfunction optを使用しようとしています。私はクラスの内部に関数を入れようとしましたが、カールはそれを見つけることができません。だから私は、私はそれを必要とする関数内に置くここで該当のコードの一部です:私は、バッファ用htWriteにecho文を入れ関数内部関数が変数を見つけることができません

$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')); 
    } 
} 
関連する問題