我希望显示有关对象Activity
的信息,getCurrent()
中的函数ListActivity
应该返回。
当我尝试它,它完美地工作,我有类所需的信息,但是,我在页面顶部有这个错误消息:
致命错误:在a上调用成员函数getIdentifiant() 非对象 /Applications/XAMPP/xamppfiles/htdocs/site/prototype/administration.php 在第34行
第34行在这里:
while($listActivities->next())
{
$current = new Activity();
$current = $listActivities->getCurrent();
echo $current->getId(); // line 34
}
这是返回Activity对象的getCurrent()
函数。
public function getCurrent()
{
if(isset($this->activities[$this->current]))
return $this->activities[$this->current];
}
我不明白为什么我有这个问题,因为它返回了我想要的对象。 请帮我搞清楚。谢谢。
答案 0 :(得分:0)
echo $current->getId(); // line 34
Fatal error: Call to a member function getIdentifiant() on a non-object in /Applications/XAMPP/xamppfiles/htdocs/site/prototype/administration.php on line 34
你认为发生了什么,或者你在页面中看到的是什么,如果错误说$ current不是一个对象,那就不是。它可能不是null,但它也可以是数组或任何不是对象的东西。
另外:
$current = new Activity();
$current = $listActivities->getCurrent();
对我来说没有意义。
使用
var_dump($listActivities->getCurrent());
要查看其确切返回的内容,并相信错误所说的内容。
编辑:你甚至可能没有看到正确的PHP脚本:错误说“getIdentifiant”而代码说“getId”。确保您正在查看正确的代码并刷新正确的页面。
答案 1 :(得分:0)
首先在$this->current
之后设置$current = new Activity();
(可能在结构中)
如果!isset($this->activities[$this->current])
还如果您使用$current = $listActivities->getCurrent()
丢失了Activity
对象,则应将其另存为另一个变量
这里是新代码:
while($listActivities->next())
{
$current = new Activity();
if( $listActivities->getCurrent() )
echo $current->getId(); // line 34
}
public function getCurrent()
{
if(isset($this->activities[$this->current]))
return $this->activities[$this->current];
return false;
}