1

我想显示有关Activity该函数应该返回getCurrent()的对象的信息。ListActivity当我尝试它时,它工作得很好,我有课堂上需要的信息,但是,我在页面顶部有这个错误消息:

致命错误:在第 34 行的 /Applications/XAMPP/xamppfiles/htdocs/site/prototype/administration.php 中的非对象上调用成员函数 getIdentifiant()

第 34 行在这里:

  while($listActivities->next())
  {
     $current = new Activity();
     $current = $listActivities->getCurrent();
     echo $current->getId(); // line 34
  }

这是getCurrent()返回 Activity 对象的函数。

  public function getCurrent()
  {
     if(isset($this->activities[$this->current]))
        return $this->activities[$this->current];
  }

我不明白为什么我有这个问题,因为它返回了我想要的对象。请帮我弄清楚。谢谢。

4

2 回答 2

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”。确保您正在查看正确的代码并刷新正确的页面。

于 2013-05-04T17:43:26.980 回答
0

$this->current之后的第一组$current = new Activity();(可能在构造中)

如果你应该返回 false!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;
  }
于 2013-05-04T17:49:34.337 回答