我正在尝试编写一个 PHP 类,在其中我将一些方法的可见性从 protected 更改为公共(public)。我相信我记得你可以用 C++ 做到这一点,但我做了一些搜索,但我没有想出任何关于 PHP 的东西。有谁知道这在 PHP 中是否可行?
例如,假设这个类:
class ABC {
protected function foo() {
// Do something
}
}
class DEG extends ABC {
// can I make foo public now?
}
最佳答案
您可以像这样从基类派生时更改成员的可见性:
class Base
{
protected function foo() {}
}
class Derived extends Base
{
public function foo() { return parent::foo(); }
}
您也可以对属性执行相同的操作(将 protected
属性重新定义为 public
)。
但是,请注意,如果基础属性是 private
,那么您实际上不会增加其可访问性,而是声明一个具有相同名称的新属性。这不是函数的问题,因为如果您尝试调用 private
基方法,您会立即收到运行时错误。
关于PHP 更改方法/函数可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16877875/