6

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

5 Answers 5

16

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

Sign up to request clarification or add additional context in comments.

Comments

8

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();
    }
}

Comments

5

Just use:

$this->demoFunction1();

Comments

5

Use $this keyword to refer to current class instance:

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

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

Comments

4

Use "$this" to refer to itself.

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

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.