PHP: класс расширяет задачу «Вызов частного метода ... из контекста ...» - PullRequest
4 голосов
/ 09 июня 2010

У меня есть 3 класса в WordPress (сам вопрос к нему не имеет отношения):

class WP_Widget

class Theme_Widget extends WP_Widget

class Specific_Widget extends Theme_Widget

По существу, Theme_Widget содержит некоторые функции расширения базового WP_Widget.

Внутри 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?

1 Ответ

3 голосов
/ 09 июня 2010

Вы должны объявить свой метод protected, а не private, если вы хотите, чтобы дочерние классы могли его использовать.

...