PHP:类扩展问题“从上下文调用私有方法......”

时间:2010-06-09 14:59:13

标签: wordpress class extends

我在WordPress中有3个类(问题本身与它无关):

class WP_Widget

class Theme_Widget extends WP_Widget

class Specific_Widget extends Theme_Widget

基本上Theme_Widget包含一些基本WP_Widget的扩展函数。

Inside Specific_Widget我调用了Theme_Widget的一个方法:

class Specific_Widget {

    function __construct() {
         $this->some_method_that_belongs_to_Theme_Widget();
    }
}

当我实例化Specific_Widget时,PHP会抛出致命错误,如下所示:

Fatal error: Call to private method Theme_Widget::some_method_that_belongs_to_Theme_Widget() from context 'Specific_Widget' in ...

你对我如何解决这个问题有所了解吗?这是我第一次从PHP收到此错误。它可以源自WordPress吗?

2 个答案:

答案 0 :(得分:3)

如果您希望子课程能够使用它,则必须声明您的方法protected,而不是private

答案 1 :(得分:0)

如果您想从扩展类访问子函数而不在 URL 中传递受保护的函数,请使用 protected function

例如

protected function somemethod() { // your code goes here }