T-Rex: Funktionen hijacken und verändern

Beitrag lesen

Hi Rob,

ein Beispiel wäre folgendes:

class beispiel  
{  
   function calcZahl()  
   {  
       $intZahl = 2 + 2;  
       return;  
   }  
}  

Du möchtest jetzt $intZahl zurück liefern, da du darauf zugreifen möchtest?
Die Frage ist jetzt wie $intZahl implementiert ist.

  • Wenn es eine public Variable ist kannst du ja einfach drauf zu greifen. Wäre zwar keine Saubere Lösung aber schnell und pragmatisch.

  • Wenn es eine protected Variable ist, kann du eine Unterklasse definieren und eine Methode einführen um an $intZahl zu kommen.

  
class unterklasse extends beispiel  
{  
   function getZahl()  
   {  
       return $this->intZahl;  
   }  
}  

Das Beispiel wäre auch für die Public Variante denkbar

  • Wenn die Variable private ist oder nur innerhalb der Methode existiert fällt mir keine andere Lösung ein, als die Klasse beispiel zu modifizieren. Aber das möchtest du ja nicht. Deshalb deklariert man die Variablen als private, damit man da eben von außen nicht ran kommt.

Eventuell kannst du eine Lösung hinpfuschen in dem du über die Reflection Class von PHP gehst http://de3.php.net/manual/de/book.reflection.php

Gruß
T-Rex