PHP: Classe étend problème “Appel à la méthode privée ... dans le contexte ...”
J'ai 3 classes dans WordPress (la question elle-même est sans rapport avec elle):
class WP_Widget
class Theme_Widget extends WP_Widget
class Specific_Widget extends Theme_Widget
Essentiellement Theme_Widget contient des fonctions d'extension de la base WP_Widget.
À l'intérieur de Specific_Widget que j'appelle un de Theme_Widget méthodes:
class Specific_Widget {
function __construct() {
$this->some_method_that_belongs_to_Theme_Widget();
}
}
Lorsque j'instancie Specific_Widget, PHP renvoie une erreur fatale comme suit:
Fatal error: Call to private method Theme_Widget::some_method_that_belongs_to_Theme_Widget() from context 'Specific_Widget' in ...
Avez-vous une idée de comment je peux résoudre ce problème? C'est la première fois que j'ai reçu cette erreur de PHP. Pourrait-il en être de dériver à partir de WordPress lui-même?
OriginalL'auteur Gal | 2010-06-09
Vous devez vous connecter pour publier un commentaire.
Vous devez déclarer votre méthode
protected
, plutôt que deprivate
, si vous le souhaitez classes enfant à être en mesure de l'utiliser.la méthode que vous essayez d'appeler dans Theme_Widget as à être protégé et non privées.
Je l'ai dit, j'ai essayé à la fois public et protégée, et il ne fonctionne pas non plus.
Êtes-vous sûr qu'ils sont publics? Cette erreur mentionne spécifiquement que
some_method_that_belongs_to_Theme_Widget
est privé.Je me rends compte que. Je ne suis pas nouvelle pour PHP c'est pourquoi il nous a paru très étrange. J'ai goûté avec les classes et il semble que WordPress est responsable de cela. Pourquoi ce qui se passe est au delà de moi...
OriginalL'auteur TheDeadMedic