我有一个在某个类中定义的 protected 函数。我希望能够在类之外的另一个函数中调用这个 protected 函数。这可能吗?如果可以,我该如何实现?
class cExample{
protected function funExample(){
//functional code goes here
return $someVar
}//end of function
}//end of class
function outsideFunction(){
//Calls funExample();
}
最佳答案
从技术上讲,可以使用反射 API 调用私有(private)和 protected 方法。然而,99% 的时间这样做是一个非常糟糕的主意。如果您可以修改类,那么正确的解决方案可能只是公开该方法。毕竟,如果您需要在类之外访问它,那么将其标记为 protected 意义就大打折扣了。
这是一个快速反射(reflection)的例子,以防这是真正有必要的极少数情况之一:
<?php
class foo {
protected function bar($param){
echo $param;
}
}
$r = new ReflectionMethod('foo', 'bar');
$r->setAccessible(true);
$r->invoke(new foo(), "Hello World");
关于php - 我可以/如何...在 PHP 的类之外调用 protected 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17174139/