PHP致命错误:无法继承抽象函数 [英] PHP Fatal error: Can't inherit abstract function

查看:87
本文介绍了PHP致命错误:无法继承抽象函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不明白我在做什么错...

I don't understand what I'm doing wrong...

abstract class Css {
    abstract protected function parse($data);
}

abstract class CssElem extends Css {
    abstract protected function parse($data);
}

class Modifier extends CssElem {
    function __construct($data = null) {
        if( $data )
            $this->parse ($data);
    }

    protected function parse($data) {
       // Some code...
    }
}

它给了我:

[2013年7月8日星期一13:21:10] PHP致命错误:无法继承摘要 函数Css :: parse()(先前在CssElem中声明为抽象)在 /home/arthur/NetBeansProjects/capa/CssElem.php,第21行[7月8日星期一 13:21:10 2013] 127.0.0.1:41207 [500]:--无法继承摘要 函数Css :: parse()(先前在CssElem中声明为抽象)在 /home/arthur/NetBeansProjects/capa/CssElem.php,第21行

[Mon Jul 8 13:21:10 2013] PHP Fatal error: Can't inherit abstract function Css::parse() (previously declared abstract in CssElem) in /home/arthur/NetBeansProjects/capa/CssElem.php on line 21 [Mon Jul 8 13:21:10 2013] 127.0.0.1:41207 [500]: / - Can't inherit abstract function Css::parse() (previously declared abstract in CssElem) in /home/arthur/NetBeansProjects/capa/CssElem.php on line 21

第21行是CssElem中的abstract protected function parse($data);.

Line 21 is abstract protected function parse($data); in CssElem.

我对Java中的OOP较为熟悉,但是根据文档 ...

I'm more familiar with OOP in Java, but it seems ok according to the doc...

推荐答案

尝试将您的中间类更改为:

Try changing your intermediate class to:

abstract class CssElem extends Css {
    // abstract protected function parse($data); // <-- take this away
}

另请参阅文档中的此评论

引用评论:

扩展抽象类的抽象类可以将buck传递给 实现抽象方法时其子类 的父抽象类.

An abstract class that extends an abstract class can pass the buck to its child classes when it comes to implementing the abstract methods of its parent abstract class.

但是,似乎这将在下一个 PHP 7.2版:

It seems however that this will be allowed in the next PHP version 7.2:

现在允许在子类中用另一个抽象方法覆盖一个抽象方法. ( https://wiki.php.net/rfc/allow-abstract-function -override )

这篇关于PHP致命错误:无法继承抽象函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆