【问题标题】:Parent class inheritance of child class functions子类函数的父类继承
【发布时间】:2012-04-11 15:55:37
【问题描述】:

我正在为 wordpress 编写一个强大的插件,它基本上提供了一堆功能来简化开发。

不过不要担心 wp 的问题,这是一个 PHP 问题。我有一个大师班“my_wp_funcs”,以及其他一些做不同事情的大型课程,我单独编写并独立工作,例如:插入新帖子。

我希望能够使用这种语法:

$wpfuncs = new funcs;
$wpfuncs->createpost($args);
$wpfuncs->addimage();

createpost 类扩展了 funcs 类,以及其他扩展 funcs 的类。

我一直在阅读抽象,但不断出现错误。这是我所拥有的精简版:

<?php

$wpfuncs = new funcs;
$wpfuncs->createpost($args);

abstract class funcs
{
    abstract protected function createpost();

    public function createpost($args){
        $tool = new $this->boss_posttype('derp', 'derps');
    }
}

class createpost extends funcs{
    public function __construct(){
        //do stuff
    }
}

为任何帮助干杯!

【问题讨论】:

  • 也许分享您遇到的一些错误。您发布的这个“修剪器”版本是否也出现错误?

标签: php class function inheritance abstraction


【解决方案1】:

您不能在抽象类中将方法定义为abstract,然后在同一个类中将其定义为真实的。也不能直接调用抽象类。

你可能想要这样的东西:

abstract class funcs
{
    abstract public function createpost($args);
}

class myFuncs {
    public function createpost($args){
        $tool = new $this->boss_posttype('derp', 'derps');
        // do other stuff
    }
}


$wpfuncs = new myFuncs();
$wpfuncs->createpost($args);

请注意,您的实现位于您自己的类中,并且该实现必须与您的抽象定义相匹配。 (它们都必须是公开的,并且必须接受相同的论点)

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多