2010-03-02 9 views
5

Ich versuche herauszufinden, wie man eine Methode innerhalb ihrer eigenen Klasse verwendet. Beispiel:PHP: Wie kann ich auf eine Methode innerhalb ihrer eigenen Klasse zugreifen/verwenden?

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     //call previously declared method 
     demoFunction1(); 
    } 
} 

Der einzige Weg, die ich gefunden habe, zu arbeiten, wenn ich eine neue intsnace der Klasse innerhalb des Verfahrens zu erstellen, und es dann rufen. Beispiel:

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     $thisClassInstance = new demoClass(); 
     //call previously declared method 
     $thisClassInstance->demoFunction1(); 
    } 
} 

aber das fühlt sich nicht richtig ... oder ist, dass die Art und Weise? irgendeine Hilfe?

dank

Antwort

10

$this-> innerhalb eines Objekts oder self:: in einem statischen Kontext (für oder von einer statischen Methode).

7

Sie müssen $this verwenden, um das aktuelle Objekt zu verweisen:

Die pseudo-Variable $this verfügbar ist, wenn eine Methode aus einem Objektkontext aufgerufen wird. $this ist eine Referenz auf das aufrufende Objekt (normalerweise das Objekt, zu dem die Methode gehört, möglicherweise aber ein anderes Objekt, wenn die Methode statisch aus dem Kontext eines sekundären Objekts aufgerufen wird).

So:

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     // $this refers to the current object of this class 
     $this->demoFunction1(); 
    } 
} 
4

Use "$ this" auf sich selbst beziehen.

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     //call previously declared method 
     $this->demoFunction1(); 
    } 
} 
5

Nur verwenden:

$this->demoFunction1(); 
5

Verwenden $this Stichwort aktuelle Klasseninstanz zu verweisen:

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     $this->demoFunction1(); 
    } 
} 
Verwandte Themen