我正在做一个自定义CMS,我已经构建了我的基本内容类:
class Content
{
public $title;
public $description;
public $id;
static function save()
{
$q = "[INSERT THE DATA TO BASE CONTENT TABLE]";
}
}
class Image extends Content
{
public $location;
public $thumbnail;
public function save()
{
// I wanted to do a Content::save() here if I
// declare Contents::save() as static
$q = "[INSERT THE DATA TO THE IMAGE TABLE]";
}
}
我的问题是我知道静态函数不能使用$this
,但我知道Content::save()
需要使用它。
我希望Image::save()
致电Content::save()
,但我希望他们都被命名为save()
并被宣布为public
而不是static
,因为我需要$this
1}}。
唯一的解决方案是重命名Content::save()
,以便我可以在Image::save()
内使用吗?
或者有扩展方法的方法吗?
答案 0 :(得分:6)
您可以使用parent来获得上层阶级。即使在以下示例中使用parent::Save
调用它,您仍然可以在父类中使用$this
。
<?php
class A
{
public function Save()
{
echo "A save";
}
}
class B
extends A
{
public function Save()
{
echo "B save";
parent::Save();
}
}
$b = new B();
$b->Save();
?>