2012-02-02 139 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

你正在創建並在makeRequest()方法在這裏返回一個局部變量$xml

return $xml = simplexml_load_file($request); 

這應該僅僅是$this->xml

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

+1正確性:) – rdlowrey 2012-02-02 05:05:02

+0

謝謝!就是這樣。 – user732027 2012-02-02 05:17:18

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 2012-02-02 05:05:23