php - 我可以/如何...在 PHP 的类之外调用 protected 函数

标签 php function call protected

我有一个在某个类中定义的 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/

相关文章:

javascript - 如何将类应用于导航中的选定项目?

c++ - 在没有参数的函数中使用void?

java - 构造函数调用或 JFrame 的问题

python:继承类中连续的 __getitem__() 调用?

php - '调用非对象的成员函数 get()'?

php - 我的单选按钮在网页上不可见

function - 在 Haskell 中组合两个错误引发函数

Javascript 函数作用域差异

java - 在 Eclipse 中导航 Java 调用堆栈

php - Laravel Sanctum 身份验证 :sanctum middleware with Angular SPA unauthenticated response