0

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->variablevsをいつ使用するかは少しわかりません。$variableクラスで言及されているすべての変数を参照するべきではありません$this->variableか?現在のオブジェクトの変数を参照したくないのはなぜですか?

4

2 に答える 2

5

では、なぜURLをオブジェクトに格納し、その変数をパラメーターとして同じオブジェクトのメソッドに渡すのですか?それならあなたは次のような何かをすることができるので、無意味に思えます:

$object1->url = 'blahblahblah';
$object1->curlQuery(); // <---note, no parameter

次に、curlQueryメソッドで:

curl_setopt($ch, CURLOPT_URL, $this->url);

PHPの$this->variablevsに関しては、その変数をオブジェクトのメンバーにします。オブジェクト内のすべてのメソッドで使用できます。それ自体は、単一のメソッド内のローカル変数になります。そのメソッドが戻ると、ローカル変数は破棄され、他のメソッドで使用できなくなります。$variable$this->variable$variable

$this->variableつまり、オブジェクト内および複数のメソッド呼び出しにわたって永続化する必要があるものに使用します。$variable単一のメソッド内の一時ストレージに使用します。

于 2012-06-09T05:30:17.897 に答える
2

変数がクラスのプロパティとして定義されている場合、メンバー関数でそれらを使用するときは、$this->variablenameを使用する必要があります。しかし、これは意味しません: クラスで言及されているすべての変数は$this->variableとして参照されます

メンバー関数内でローカル変数を別の方法で使用することもできます。これは、定義された特定の関数内のスコープを持ちます。

お気に入り

class twitter 
{
   var $apikey;

   function displayKey()
   {
     $k = 1;
     $this->apikey += $k;
     echo $this->apikey;
   }

 }

apikeyを参照するには、$ this-> apikeyを使用し、関数内のローカル変数には、その逆を使用します。

于 2012-06-09T05:29:24.660 に答える