如果这是重复问题,我道歉。 我有一个受保护的功能。例如。
protected function example(){
//some code
}
我想从中访问此功能 课外。我想出了以下内容。
public function returnMyFunction(){
return $this->example();
}
如果这是一种正确的方法,我想知道的是什么。谢谢!
P.S 我忘了提到我想出了因为在zend框架2中我无法扩展该函数所在的类,因为我调用它的类正在扩展另一个
答案 0 :(得分:1)
实际上受保护的方法受到保护,因为在类及其子类之外访问无意。总结:
私人方法的目的是永远不会从课外访问它们 受保护的意图是,它们将从类层次结构(声明类及其后代)之外进行访问。 公共方法的目的是从任何地方访问它们。
因此,如果要访问类外部的方法,则应声明要声明的内容:中间方法(可能是中间公共方法执行受保护方法的前/后处理)。访问它的另一种方法异常(这是一个黑客!如果你想允许常规访问,让它公开)是使用Reflection
(设置accessible = true),虽然它是一个有点慢。