Неустранимая ошибка: использование $ this, если не в контексте объекта

Кто-нибудь может понять, почему этот код дает ошибку? «Неустранимая ошибка: использование $ 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; } } } 

Если вы не оставили объявление класса, это выглядит как обычная функция. Вы можете использовать $this внутри класса. Попробуйте проверить документы PHP на классах для получения дополнительной информации.

Кроме того, эта функция:

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

вызовет проблемы независимо. Поскольку $this не входит в область parentID() , вам нужно передать его как параметр и изменить имя переменной.