The $this keyword
As an example, we wrote a Car class that groups all the code that handles cars.
1 2 3 4 5 6 7 8 9 10 |
class Car { public $comp; public $numWheels = 4; public $hasSunRoof = true; public function hello() { return "beep"; } } We also created two objects out of the class in order to be able to use its code: |
1 2 |
$bmw = new Car (); $mercedes = new Car (); |
The $this keyword indicates that we use the class’s own methods and properties, and allows us to have access to them within the class’s scope.
The $this keyword allows us to approach the class properties and methods from within the class using the following syntax:
1 2 |
$this -> propertyName; $this -> methodName(); |
• Only the this keyword starts with the $ sign, while the names of the properties and methods do not start with it.
The $this keyword indicates that we use the class’s own methods and properties, and allows us to have access to them within the class’s scope.
Let’s illustrate what we have just said on the Car class. We will enable the hello() method to approach the class’s own properties by using the $this keyword.
We use:
1 |
$this -> comp; |
in order to approach the class $comp property. We also use:
1 |
$this -> color; |
in order to approach the class $color property.
That’s what the code looks like:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Car { // The properties public $comp; public $color = "beige"; public $hasSunRoof = true; // The method can now approach the class properties // with the $this keyword public function hello() { return "Beep I am a <i>" . $this -> comp . "</i>, and I am <i>" . $this -> color; } } |
Let us create two objects from the class:
1 2 |
$bmw = new Car(); $mercedes = new Car (); |
and set the values for the class properties:
1 2 3 4 |
$bmw -> comp = "BMW"; $bmw -> color = "blue"; $mercedes -> comp = "Mercedes Benz"; $mercedes -> color = "green"; |
We can now call the hello method for the first car object:
1 |
echo $bmw -> hello(); |
Result
Beep I am a BMW, and I am blue.
And for the second car object:
1 |
echo $mercedes -> hello(); |
Result
Beep I am a Mercedes Benz, and I am green.
This is the full code that we have written in this Tutorial:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
class Car { // The properties public $comp; public $color = "beige"; public $hasSunRoof = true; // The method that says hello public function hello() { return "Beep I am a <i>" . $this -> comp . "</i>, and I am <i>" . $this -> color ; } } // We can now create an object from the class $bmw = new Car(); $mercedes = new Car(); // Set the values of the class properties $bmw -> color = "blue"; $bmw -> comp = "BMW"; $mercedes -> comp = "Mercedes Benz"; // Call the hello method for the the $bmw object echo $bmw -> hello(); |