[英]Extend class methods in PHP
我正在做一个自定义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
。
唯一的解决方案是重命名Content::save()
所以我可以在Image::save()
使用它吗?
或者有扩展方法的方法吗?
您可以使用父级来获得上层阶级。 即使在下面的示例中,您使用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();
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.