2012-06-09 3 views
0

cURL을 사용하여 Twitter API에 요청하는 클래스를 만들려고합니다. 필자는 PHP에서 객체 지향 프로그래밍에 대한 연구를 해왔습니다. 그리고 이것이 어떻게 작동하는지 알아 내지 못합니다. 다음 코드는 NULL 반환PHP 클래스에서 cURL 메서드 만들기

<?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 클래스에서 $variable$this->variable을 사용할 때 좀 확실 해요. 어떤 클래스에서 언급 된 모든 변수가 $this->variable으로 참조되어야합니까? 왜 현재 객체의 변수를 참조하고 싶지 않으십니까?

+0

나는 코드가 작동하는지 테스트했다. – flowfree

+0

클래스의 함수를 단순히 래핑하는 것입니다. OOP의 관점에서 여기에서 알아야 할 것이 없습니다. – Alexander

+0

'$ json'을 항상 var_dump하여 반환 된 데이터가 실제로 있는지 알아낼 수 있습니다. 그러면 범인에 대해 더 잘 알 수 있습니다. – Strawberry

답변

4

글쎄, 왜 개체에 URL을 저장하고, 그 변수를 동일한 개체의 메서드에 매개 변수로 전달하고 있습니까? 당신이 할 수 있기 때문에, 무의미한 것 같다 somethign 같은 :

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

다음 curlQuery 방법에

: $this->variable v.s.에 관해서는

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

PHP의 $variable이면 $this->variable은 해당 변수를 객체의 멤버로 만듭니다. 객체의 모든 메소드에서 사용할 수 있습니다. $variable은 그 자체로 단일 메소드 내의 로컬 변수 일뿐입니다. 해당 메서드가 반환되면 로컬 변수가 파괴되어 더 이상 다른 메서드에서 사용할 수 없습니다.

간략히 말하자면 오브젝트 내에서 그리고 여러 메소드 호출간에 유지되어야하는 사항에 $this->variable을 사용하십시오. 단일 방법 내에서 임시 저장소로 $variable을 사용하십시오.

+0

고마워요. 개체에 url을 저장하고 개체 메서드에서 매개 변수로 전달하는 대신 현재 개체를 참조하도록 클래스 코드를 정리했습니다. 완벽하게 작동합니다. '$ this-> variable'과'$ variable'에 대한 설명입니다. 그것은 정말로 나를 위해 일을 정리했다. – user732027

2

변수가 클래스의 속성으로 정의 된 경우 멤버 함수에서 변수를 사용하는 동안 $ this-> variablename을 사용해야합니다. 그러나 이 나던 의미 : 클래스에 언급 모든 변수가 $ this-로 참조 할 수>

변수 당신은 다른 방법으로 멤버 함수 내부의 지역 변수를 사용할 수 있습니다. 그것은 정의 된 perticular 함수 안에 범위를 가질 것이다. 우리는 $ this-> apiKey에를 사용하는 apiKey에를 참조하기위한 우리 주위에 다른 방법을 사용하는 함수 내에서 로컬 varibles에 대한

class twitter 
{ 
    var $apikey; 

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

} 

같은

.