2010-04-16 88 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() . '" />'; 
}