2017-07-08 4 views
3

Comment appeler la fonction lmn() sans classe toucher B de la classe AComment appeler la fonction protégée?

class A extends B{ 
    public function abc(){ 
     return "abc"; 
    } 
    ... 
} 

class B{ 
    public function xyz(){ 
     return "xyz"; 
    } 
    ... 
} 

class C{ 
    protected function lmn(){ 
     return "lmn"; 
    } 
    ... 
} 

s'il vous plaît me guider pour cette

+2

Vous ne pouvez pas. la classe B (ni la classe A) n'hérite pas de la classe C. –

+0

Où voulez-vous l'appeler? – colburton

Répondre

-1

Vous ne pouvez pas appeler depuis des moyens protégés d'être une fonction qui peut être appelée des classes d'enfants.

Dans votre cas, vous devez créer une instance de B pour appeler lmn dans n'importe quelle classe.

1

Vous pouvez faire une sorte de classe proxy qui va de C et fournit une méthode publique d'accès:

class ProcyForC extends C { 
    public function getLmn() { 
    return $this->lmn(); 
    } 
} 

echo (new ProxyForC())->getLmn();