2012-02-02 4 views
0

Я пытаюсь сделать запрос xmlhttp и распечатать xml. Я создал класс с методами и вызываю эти методы из объекта. Однако, когда я пытаюсь распечатать вывод метода, я ничего не получаю. Я предполагаю, что это нечто незначительное, но я уже некоторое время пытаюсь сделать это и добился небольшого прогресса. Заранее спасибо за помощь.Не удается получить доступ к объекту PHP

<?php 
class twitter { 

    public $screen_name; 
    public $xml; 
    public $count; 

    public function getUserTimeline($screen_name, $count=5) { 
     $request= "https://api.twitter.com/1/statuses/user_timeline.xml?include_entities=true&include_rts=true&screen_name=$screen_name&count=$count"; 
     return $this->makeRequest($request); 
    } 

    public function makeRequest($request){ 
     return $xml = simplexml_load_file($request); 

    } 

} 


$test = new twitter; 
$test->screen_name="mattcutts"; 
$test->getUserTimeline($screen_name=$test->screen_name, $count=5); 
print_r($test->xml); //This does not print anything. 

?> 

ответ

4

Вы создаете и возвращает локальную переменную $xml здесь в методе makeRequest():

return $xml = simplexml_load_file($request); 

Это должно быть просто $this->xml:

$this->xml = simplexml_load_file($request); 
+0

+1 для правильности :) – rdlowrey

+0

Спасибо! Вот и все. – user732027

1

Вы пытаетесь получить доступ к переменной XML. Но вы этого не задали. Вы можете изменить свой метод следующим образом.

public function makeRequest($request){ 
    $this->xml = simplexml_load_file($request); 
} 

Или вы можете распечатать $ xml следующим образом.

$xmp = $test->getUserTimeline($screen_name=$test->screen_name, $count=5); 
print_r($xml); 
-2

Чтобы создать объект twitter, вы должны использовать конструктор. Поэтому вместо $test = new twitter; использовать $test = new twitter();

+1

'$ test = new twitter;' совершенно легален в PHP. В любом случае класс не имеет конструктора, поэтому есть ли у вас круглые скобки или какие-либо аргументы, эффект невозможен. – BoltClock

Смежные вопросы