tags:

views:

38

answers:

5

Hello,

I am trying to figure out how to use a method within its own class. example:

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

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

The only way that I have found to be working is when I create a new intsnace of the class within the method, and then call it. Example:

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

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

but that does not feel right... or is that the way? any help?

thanks

+4  A: 

You need to use $this to refer to the current object:

The pseudo-variable $this is available when a method is called from within an object context. $this is a reference to the calling object (usually the object to which the method belongs, but possibly another object, if the method is called statically from the context of a secondary object).

So:

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

    function demoFunction2()
    {
        // $this refers to the current object of this class
        $this->demoFunction1();
    }
}
Gumbo
+1  A: 

Use "$this" to refer to itself.

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

    function demoFunction2()
    {
        //call previously declared method
        $this->demoFunction1();
    }
}
Jage
+2  A: 

Just use:

$this->demoFunction1();
ar
+2  A: 

$this-> inside of an object, or self:: in a static context (either for or from a static method).

jasonbar
+2  A: 

Use $this keyword to refer to current class instance:

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

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