Heim > Backend-Entwicklung > PHP-Tutorial > php类 方法里调用curl(),不成功

php类 方法里调用curl(),不成功

WBOY
Freigeben: 2016-06-06 20:34:04
Original
1480 Leute haben es durchsucht

<code>class Qq_api {

    private $list;

    function __construct() {
        $this->list['dsp_id'] = DSP_ID;
        $this->list['token'] = TOKEN;
    }

    function curl_post($end = '') {
$ch = curl_init(URL.$end);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    }

    function sync() {
        $this->curl_post('sync');


        $arr = array();



curl_setopt($ch, CURLOPT_POSTFIELDS,$arr);
$result = curl_exec($ch);
var_dump($result);


    }   
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

提示:Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in C:\AppServ\www\qq_api2.php on line 45

我是在方法里调用curl(),好像curl()只能在_construct()里面初始化吧,如果是为什么?

回复内容:

<code>class Qq_api {

    private $list;

    function __construct() {
        $this->list['dsp_id'] = DSP_ID;
        $this->list['token'] = TOKEN;
    }

    function curl_post($end = '') {
$ch = curl_init(URL.$end);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    }

    function sync() {
        $this->curl_post('sync');


        $arr = array();



curl_setopt($ch, CURLOPT_POSTFIELDS,$arr);
$result = curl_exec($ch);
var_dump($result);


    }   
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

提示:Warning: curl_setopt(): supplied argument is not a valid cURL handle resource in C:\AppServ\www\qq_api2.php on line 45

我是在方法里调用curl(),好像curl()只能在_construct()里面初始化吧,如果是为什么?

不好意思,封贴.乱试试出来了。

在类里的方法声明的变量$ch是局部的,把所有$ch地方改成$this->ch就行了

<code>    function curl_post($end = '') {
$this->ch = curl_init(URL.$end);
curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true);
    }
</code>
Nach dem Login kopieren
Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage