2015-10-27 145 views
1

我在forEach中多次调用函数时出错。 基本上,我试图抓住类别的论坛,我通过抓住所有的类别来做到这一点,对于每个类别,我将抓住该类别的论坛。如果我只有一个类别,它工作正常。我没有错误。但是,如果我有2个或更多,它会得到错误。不能多次调用类的函数

错误: 致命错误:调用一个成员函数grabForumsOfCategories()一个非对象在/home/dankkvgo/public_html/source/templates/forums_index.php线路22上

forums_index.php(只是一个片段 - 22行是在那里)

$categories = $forum->grabCategories(); 
    if($categories == NULL) { 
     echo ' 
      <div class="categoryForum"> 
       <p>No data retrived</p> 
      </div> 
     '; 
    } else { 
     if (is_array($categories)) { 
      foreach ($categories as $category) { 
       try { 
        $category_id = $category["category_id"]; 
        $category_title = $category["category_title"]; 
        echo ' 
      <div class="forum-header"><h4>'.$category_title.'</h4></div> 
        '; 
        $forums = $forum->grabForumsOfCategories($category_id); 
        if ($forums == NULL) { 
         echo ' 
      <div class="categoryForum"> 
       <p>No forum data found in this category.</p> 
      </div> 
         '; 
        } 

在论坛类

public function grabForumsOfCategories($category_id) { 
    $database = new database(); 

    $query = "SELECT * 
       FROM forums_forums 
       WHERE category_id='".$category_id."'"; 
    $result = $database->query_select($query); 
    return $result; 
} 
+0

Your $ forum is null。做var_dump($ form)并看看你得到了什么。为漂亮打印启用xdebug扩展。 – jpaljasma

回答

1

它看起来像$论坛我grabForumsOfCategories功能为n每次都有一个对象。尝试第22行上方的print_r($ forum)并确保它是一个对象。 $ forum对象每次看起来都没有实例化。

+0

现在第一类以上,我得到这个:论坛对象() 及以上的错误,我得到这个:'Array([category_id] => 1 [0] => 1 [forum_id] => 3 [1] = > 3 [forum_title] =>测试论坛2 [2] =>测试论坛2 [forum_description] =>这是一个测试论坛!!!!!! [3] =>这是一个测试论坛!!!!!! [forum_thread_count] => 0 [4] => 0 [forum_message_count] => 0 [5] => 0 [last_user] =>无[6] =>无[last_date] => 00 [7] => 0000-00-00 00:00:00 [last_thread_id] => 1 [8] => 1)' –

+0

我想通了。在我的forEach声明中,我将论坛的价值重新分配给$ forum,而不是像$ forum_row –

+1

之类的东西,感谢所有帮助 –