在PHP中访问受保护的函数说明

时间:2014-04-29 14:46:48

标签: php zend-framework2

如果这是重复问题,我道歉。 我有一个受保护的功能。例如。

protected function example(){
//some code
}

我想从中访问此功能 课外。我想出了以下内容。

public function returnMyFunction(){
  return $this->example();

}

如果这是一种正确的方法,我想知道的是什么。谢谢!

P.S 我忘了提到我想出了因为在zend框架2中我无法扩展该函数所在的类,因为我调用它的类正在扩展另一个

1 个答案:

答案 0 :(得分:1)

实际上受保护的方法受到保护,因为在类及其子类之外访问无意。总结:

私人方法的目的是永远不会从课外访问它们 受保护的意图是,它们将从类层次结构(声明类及其后代)之外进行访问。 公共方法的目的是从任何地方访问它们。

因此,如果要访问类外部的方法,则应声明要声明的内容:中间方法(可能是中间公共方法执行受保护方法的前/后处理)。访问它的另一种方法异常(这是一个黑客!如果你想允许常规访问,让它公开)是使用Reflection(设置accessible = true),虽然它是一个有点慢。