在PHP类中创建cURL方法

在PHP类中创建cURL方法,php,oop,curl,Php,Oop,Curl,我试图创建一个类,该类使用cURL向twitterapi发出请求。我对PHP中的面向对象编程做了一些研究,但我不太明白它应该如何工作。以下代码返回NULL: <?php class twitter { public function curlQuery($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT

我试图创建一个类,该类使用cURL向twitterapi发出请求。我对PHP中的面向对象编程做了一些研究,但我不太明白它应该如何工作。以下代码返回NULL:

 <?php

    class twitter {

      public function curlQuery($url) {
      $ch = curl_init();

      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, True);

      $json = curl_exec($ch);

      curl_close($ch);

      $array = json_decode($json);
      return var_dump($array);
      }
}

$object1 = new twitter;
$object1->url = "http://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=twitterapi&count=2";
$object1->curlQuery($object1->url);

 ?>

另外,我有点不确定在PHP类中何时使用$this->variable vs$variable。类中提到的所有变量不都应该被引用为$this->variable吗?为什么不想引用当前对象的变量?

当变量被定义为类的属性时,在成员函数中使用它们时,应该使用$this->variablename。但这并不意味着: 类中提到的所有变量都可以引用为$this->variable

您可以以另一种方式在成员函数中使用局部变量。它将在定义的特定函数内具有作用域


对于引用apikey,我们使用$this->apikey;对于函数中的局部变量,我们使用另一种方法。

那么,为什么要将url存储在对象中,然后将该变量作为参数传递给同一对象的方法呢?似乎毫无意义,因为这样你就可以做一些事情,比如:

$object1->url = 'blahblahblah';
$object1->curlQuery(); // <---note, no parameter
对于PHP中的$this->variable v.s.$variable,$this->variable使该变量成为对象的成员。对象中的所有方法都可以使用它$变量本身就是单个方法中的局部变量。当该方法返回时,局部变量将被销毁,并且不再可用于其他方法


简言之,使用$this->variable在对象内和跨多个方法调用持久化所需的内容。在单个方法中使用$variable进行临时存储。

我测试了代码的工作情况。您只需将函数包装到类中即可。在OOP方面,这里没有什么需要注意的。您可以始终使用var_dump$json来查看您是否实际获得了返回的数据,这样您就可以更好地了解罪魁祸首。非常感谢。清理类代码以引用当前对象,而不是将url存储在对象中并将其作为参数传递到对象的方法中。工作完美。对$this->variable和$variable的解释非常好。这对我来说真的很清楚。
$object1->url = 'blahblahblah';
$object1->curlQuery(); // <---note, no parameter
curl_setopt($ch, CURLOPT_URL, $this->url);