Ya no necesitas investigar más por internet porque llegaste al lugar indicado, tenemos la respuesta que buscas sin complicarte.
Solución:
Técnicamente, es posible invocar métodos privados y protegidos utilizando la API de reflexión. Sin embargo, el 99% de las veces hacerlo es una muy mala idea. Si puede modificar la clase, entonces la solución correcta probablemente sea simplemente hacer público el método. Después de todo, si necesita acceder a él fuera de la clase, eso anula el punto de marcarlo como protegido.
Aquí hay un ejemplo de reflexión rápida, en caso de que esta sea una de las pocas situaciones en las que es realmente necesario:
setAccessible(true);
$r->invoke(new foo(), "Hello World");
Ese es el punto de OOP – encapsulación:
Privado
Only can be used inside the class. Not inherited by child classes.
Protegido
Only can be used inside the class and child classes. Inherited by child classes.
Público
Can be used anywhere. Inherited by child classes.
Si aún desea activar esa función en el exterior, puede declarar un método público que active su método protegido:
protected function b()
public function a()
$this->b() ;
//etc
Puede anular esta clase con otra en la que lo haga público.
class cExample2 extends cExample
public function funExample()
return parent::funExample()
(Tenga en cuenta que esto no funcionará con miembros privados)
Pero la idea de miembros privados y protegidos es NO SER llamados desde afuera.
Si posees algún titubeo o capacidad de renovar nuestro tutorial eres capaz de realizar una aclaración y con gusto lo leeremos.