2010-04-16 83 views
0

所以我有了一個名爲getThumbUrl()方法,而是一個非常簡單的類,當我嘗試實例調用這個方法,我得到PHP對象無法找到方法

公告:未定義的屬性:FlickrImage :: $ getThumbUrl

但它顯然存在。下面是函數的FlickrImage類中的代碼:

public function getThumbUrl() 
{ 
    return "http://farm".$this->_farm.".static.flickr.com/".$this->_server."/".$this->_id."_".$this->_secret."_t.jpg"; 
} 

,這裏是它一個不同的測試文件中失敗:

$flickrTester = new FlickrManager(); 

$photos = $flickrTester->getPhotoStreamImages(9, 1); 

foreach($photos as $photo) { 
    echo "<img src='$photo->getThumbUrl()' />"; 
} 
+0

討厭打斷它給你,但你的foreach調用$ photo-> getFullUrl(),但是你發佈的函數/方法是getThumbUrl()。錯字? – 2010-04-16 18:21:36

+0

對不起!該函數也存在,但 – Danny 2010-04-16 18:22:24

+0

你能提供更多的代碼嗎?你如何獲得圖像等。從你發佈的內容來看,很難提供幫助。 – 2010-04-16 18:24:50

回答

4

在您的回聲中在$photo->getThumbUrl()的周圍添加大括號。以下是發生了什麼事。如果沒有用大括號括起來,PHP會嘗試解析$photo->getThumbUrl,並將()視爲純文本。你看到的錯誤是PHP抱怨$photo->getThumbUrl還沒有被聲明,事實上它沒有被聲明。

foreach($photos as $photo) { 
    echo "<img src='{$photo->getThumbUrl()}' />"; 
} 
2

從你說的話,你在呼喚它像:

FlickrImage::$getFullUrl 

不是:

FlickrImage::$getFullUrl() 

所以你最後錯過了()

foreach($photos as $photo) { 
    echo '<img src="' . $photo->getThumbUrl() . '" />'; 
}