第一次在PHP中扩展一个类,我遇到一个致命的错误,说这个方法是非私有的。我确信这是一些基本的东西,但我已经研究过书籍和论坛,而且我无法确定我为完成此错误所做的工作。任何帮助非常感谢。详情如下:
错误讯息:
致命错误:在第726行的/root/includes/classes/testprinter.php中从上下文'testprinter'调用私有方法testgiver :: dbConnect()
下面代码中的testprinter第726行:
private function buildquestionarray()
{
$query = "etc etc";
**$conn = $this->dbConnect('read');
$result = $conn->query($query);
...
Testprinter扩展了testgiver。这是课程的扩展:
require_once('testgiver.php');
class testprinter extends testgiver
{...
在testgiver中声明方法:
protected function dbConnect($userconnecttype)
{...
再次感谢!
答案 0 :(得分:9)
已经Alexander Larikov
表示您无法从类实例访问protected methods
但不仅访问protected
方法,而且您无法从类实例访问private
方法。要从protected
的实例访问parent class
的{{1}}方法,请在子类中声明subclass
,然后调用public method
protected method
1}}来自子类的公共方法,即
parent class
答案 1 :(得分:0)
您无法从类实例访问受保护的方法。阅读Members declared protected can be accessed only within the class itself and by inherited and parent classes
答案 2 :(得分:0)
阿尔法,伟大的写作!
我觉得我差点把它拿到我想要的地方,但我得到了
Fatal Error, call to undefined method NameofClass::myFunction() in line 123456
我在这里缺少什么?
我的原始类和扩展类都在同一个.php文件中,但对myFunction的调用发生在另一个文件中。这是不允许的吗?
注意:我会在评论中添加此内容,但系统不会让我包含评论,直到我的声誉为50.