我在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吗?
答案 0 :(得分:3)
如果您希望子课程能够使用它,则必须声明您的方法protected
,而不是private
。
答案 1 :(得分:0)
如果您想从扩展类访问子函数而不在 URL 中传递受保护的函数,请使用 protected function
例如
protected function somemethod() { // your code goes here }