gpt4 book ai didi

php - 如何在 php 中调用 protected 方法?

转载 作者:行者123 更新时间:2023-12-04 20:51:28 25 4
gpt4 key购买 nike

这是类结构。我希望 Observer:callme() 也可以从 Children 调用。

class Observer
{
protected callme()
{
}
}

class Parent extends Observer
{
function createChild()
{
$this->callme(); // this is OK
return new Child ($this);
}
}

class Child
{
private $this myParent;
public function __constructor ($myParent)
{
$this->myParent = $myParent;
}

public function __destroy()
{
$this->myParent->callme(); // FAIL!
}
}

那么如何让 FAIL 起作用呢? (没有公开,因为它仅供“父”及其“子”内部使用)

最佳答案

问题是 protected 方法只能从同一个类或子类访问。您可以做的是从 Parent 扩展您的 Child 类,如下所示:

class Child extends Parent
{
public function __constructor ()
{
parent::__constructor();
}

public function __destroy()
{
$this->callme(); // Should work!
}
}

或者只是将方法更改为 public。

而且,顺便说一句,这段代码是您将使用的某种真实代码吗?接收父对象的构造函数似乎错了。你想要完成什么?

关于php - 如何在 php 中调用 protected 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32529378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com