Skip to Content

PHP Using $THIS When Not In Object Context

PHP Using $THIS When Not In Object Context

Today, we will learn how to fix “php using $this when not in object context”. This is one of the common issues new PHP developers face.

 

What Is $this

$this is a pointer referring to the current object of the class. Current object means object currently using the function.

There could be many objects to the single defined class. This creates the possibility of using a single function by different objects.

While defining, we are not sure of the possible names of the objects. $this provides us flexibility in terms of referring to different objects.

For example, we create some class “Animal”. The class has some data members and some methods. Below is a general example.

 

Class Animal
{
    // Some code
}

 

Suppose we have a class method named “Walk” which has a certain code to perform a specific task. Now this “Walk” method will be used by different objects.

We are not sure of the possible names for the reference but “$this” pointer has provided us convenience by referring to any possible object of the class.

 

Class Animal
{
    Walk()
    {
        $this->……………….
}
}

 

Now let`s suppose, after class definition, an object named “Cat” and “Cow” has been created by the user of this class.

Although, the method “Walk” performs the same task but for different objects. $this makes our reference easier and convenient.

 

OOP

While $this facilitates us in Object-Oriented Paradigm (OOP) but this may be mistakenly used in procedural paradigm.

New programming learners usually start with the procedural/functional paradigm. But OOP is mostly used. Procedural programmers find it way easy when programming in OOP.

So, they use OOP more and more. Using OOP more and more slowly makes them forget functional concepts.

Although OOP is a new paradigm functional may also be needed. Using functional after a long time may result in a number of mistakes one of which is “using $this in procedural paradigm”.

The solution to the problem is being careful while using the procedural paradigm.

Revising the concepts could be a good idea before starting to program. Most of the programming issues are the result of unplanned programming.

Programmers must go through all steps of software development whether the software is simple or complex.