2

是否有可能降低 PHP 派生类中函数的访问级别?

示例(...表示更多代码)

class foo
{
  public function myFunction() { ... }
  public function myOtherFunction() { ... }
}

class bar extends foo
{
  private function myFunction() { ... }
}

现在我应该不能调用MyFuncion 一个bar对象。但是这样做在 PHP 中似乎无效。还有什么办法吗?我知道我可以实现一个空函数,但我根本不想在接口中公开该函数。

4

1 回答 1

4

无论如何,它在 OOP 中无效。如果你实现了一个公共方法,你保证这个类和所有的子类都提供这个功能。删除公共方法意味着你违背了你的承诺;)因为所有公共方法和属性都定义了类的接口并且打破接口从来都不是一个好主意。

如果没有关于你将要做什么的更清晰的信息,我建议只抛出一个异常,比如“不支持”。

于 2010-12-14T10:28:50.860 回答