2010-05-15 98 views
2

我正在創建一個顯示博客的函數。所以我做了一個節目博客的功能,但它一直給「使用$這個時候不是在對象上下文」錯誤

Class Blog{ 

    public function getLatestBlogsBig($cat = null){ 
     $sqlString = "SELECT blog_id FROM jab_blog"; 
     if($cat != null) 
      $sqlString .= " WHERE blog_cat = " . $cat; 

     $sqlString .= " ORDER BY blog_id DESC LIMIT 5"; 
     $blog = mysql_query($sqlString); 

     while($id = mysql_result($blog,"blog_id")){ 
      $this->showBlog($id); //Error is on this line 
     } 

    } 

    function showBlog($id,$small = false){ 
     $sqlString = "SELECT blog_id FROM jab_blog WHERE blog_id=" . $id . ";"; 
     $blog = mysql_query($sqlString); 

     if($small = true){ 
      echo "<ul>"; 
      while($blogItem = mysql_fetch_array($blog)){ 
       echo '<a href="' . $_SESSION['JAB_LINK'] . "blog/" . $blogItem['blog_id'] . "/" . SimpleUrl::toAscii($blogItem['blog_title']) .'">' . 
        $blogItem['blog_title'] . '</a></li>'; 
      } 
      echo "</ul>"; 
     }else{ 
      while($blogItem = mysql_fetch_array($blog)){ 
      ?> 
      <div class="post"> 
       <h2 class="title"><a href="<?php echo $_SESSION['JAB_LINK'] . "blog/" . $blogItem['blog_id'] . "/" . SimpleUrl::toAscii($blogItem['blog_title']);?>"><?php echo $blogItem['blog_title'];?></a></h2> 
       <p class="meta"><span class="date">The date implement</span><span class="posted">Posted by <a href="#">Someone</a></span></p> 
       <div style="clear: both;">&nbsp;</div> 
       <div class="entry"> 
        <?php echo $blogItem['blog_content'];?> 
       </div> 
      </div> 
      <?php 
      } 
     } 
    } 
} 
+0

請顯示您正在運行的PHP代碼以調用Blog類。 – 2010-05-15 15:49:14

+0

[PHP的致命錯誤:當不在對象上下文中時使用$ this]可能重複(http://stackoverflow.com/questions/2350937/php-fatal-error-using-this-when-not-in-object-context ) – 2017-04-05 19:32:05

回答

6

你怎麼打電話getLatestBlogsBig?如果您在靜態上下文中調用它(Blog::getLatestBlogsBig()),則不能將$this解析爲對象。您需要在Blog類的實例上調用getLatestBlogsBig方法。

1

我不明白如何使用您發佈的代碼來獲取此錯誤/行,因爲您必須處於對象模式才能觸及該行。 getLatestBlogsBig()在您實際運行的代碼中聲明爲靜態?使用$this->myFunction()在一個靜態函數裏面不起作用。改爲使用self::myFunction()。請記住,myFunction()必須是一個靜態函數

+0

這是靜態和非靜態類的問題。使用self解決了這個問題::現在一切正常,感謝您的幫助 – Ken 2010-05-15 18:22:19

相關問題