2012-08-04 69 views
0

任何人都有任何想法爲什麼這段代碼給出錯誤? 「致命錯誤:當不在對象上下文中時使用$ this」這是我嘗試工作的腳本的一部分。

感謝

function add($is_general_media, $title, $description, $allowed_extensions, $display) { 
    $db = new db; 

    if (User::isAdmin()) { 
     $parentID = $db->sanitize_to_db($parentID); 
     $is_general_media = $db->sanitize_to_db($is_general_media); 
     $title = $db->sanitize_to_db($title); 
     $description = $db->sanitize_to_db($description); 
     $allowed_extensions = $db->sanitize_to_db($allowed_extensions); 
     $display = ($display == 'grid') ? 'grid' : 'list'; 
     if (strtolower(get_class($this)) == "mediaarea"); { 
      function parentID();{ 
      $parentID = $this->getID(); 
      } 
     } else { 
      $parentID = 0; 
     } 
     if (!$title) { 
      $title = '(Untitled Area)'; 
     } 
     $q = "insert into DarkRoom_Areas (title, description, image_max_width, image_max_height, image_max_thumbnail_width, image_max_thumbnail_height, is_general_media, parent_id, allowed_extensions, display) values ('$title','$description'," . MEDIA_DEFAULT_MAX_WIDTH . "," . MEDIA_DEFAULT_MAX_HEIGHT . "," . MEDIA_DEFAULT_MAX_THUMBNAIL_WIDTH . "," . MEDIA_DEFAULT_MAX_THUMBNAIL_HEIGHT . ", $is_general_media, $parentID, '$allowed_extensions', '$display')"; 
     $r = mysql_query($q); 
     if ($r) { 
      $ma = MediaArea::get(mysql_insert_id()); 
      return $ma; 
     } else { 
      $e = new Error(); 
      $e->add(mysql_error()); 
      return $e; 
     } 
    } 
} 
+0

請指出錯誤信息中指示的行。 – walrii 2012-08-04 01:59:52

回答

2

除非你離開了類的聲明,這似乎是一個普通的函數。你只能在班級中使用$this。嘗試檢查出PHP docs on classes欲知更多信息。

而且,這樣的功能:

function parentID();{ 
    $parentID = $this->getID(); 
} 

會引起問題不管。由於$this不在parentID()的範圍內,因此您需要將其作爲參數傳入並更改變量名稱。

+0

是的,這就是給出錯誤的行$ parentID = $ this-> getID(); – 2012-08-04 06:24:05

+0

不錯。你有沒有得到它的工作呢? – 2012-08-04 13:49:58

相關問題