任何人都知道为什么这段代码会出错? “致命错误:在不在对象上下文中时使用$ 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 :(得分:2)
除非你遗漏了类声明,否则这似乎是一个普通的功能。您只能在课程中使用$this
。请尝试查看PHP docs on classes以获取更多信息。
此外,此功能:
function parentID();{
$parentID = $this->getID();
}
无论如何都会引起问题。由于$this
不在parentID()
的范围内,因此您需要将其作为参数传递,并更改变量名称。