函数内部函数Can';t查找变量


Function Inside Function Can't Find Variable

我正在尝试使用类中的curl-headerfunction opt。我试过正常地把函数放在类中,但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中为缓冲区放入一个echo语句时,它的回声很好。但如果我稍后在$ht上做一个print_r声明,它会说它是空的。进一步的调查表明,它正在创建自己的$ht变量,因为如果我删除该行,根据函数,$ht为null。那么我该怎么办才能解决这个问题呢?

您需要了解如何将对象方法指定为回调:

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