In PHP, the $this keyword is used inside a class to refer to the current object instance of that class.
Think of it as “this very object I’m working with right now.”
Key Points
$thiscan only be used inside a class’s non-static method.- It gives you access to the properties and methods of the current object.
- It helps differentiate between local variables and object properties when they have the same name.
Example
class Car {
public $color;
public function setColor($color) {
$this->color = $color; // "this" refers to the current object
}
public function getColor() {
return $this->color;
}
}
$car1 = new Car();
$car1->setColor('Red');
echo $car1->getColor(); // Output: Red
$car2 = new Car();
$car2->setColor('Blue');
echo $car2->getColor(); // Output: Blue
Here:
- In
$car1->setColor('Red'),$thisrefers to$car1. - In
$car2->setColor('Blue'),$thisrefers to$car2.
💡 Remember:
$thiscannot be used in a static method (useself::instead).$this->propertyis how you access an object’s property.$this->method()is how you call another method of the same object.
Alright, here’s a real-world analogy for $this in PHP:
📦 The “Self” Analogy
Imagine you are a factory worker in a Car Factory.
- Each car is an object.
- The Car Blueprint is the class.
- While building a car, if you say: “Put a red color on this car”
You’re talking about the car you are working on right now, not any other car in the factory.
In PHP:
class Car {
public $color;
public function paint($color) {
$this->color = $color; // paint THIS car
}
}
- If you’re working on
$car1,$thismeans $car1. - If you’re working on
$car2,$thismeans $car2.
🏠 The “Me” Analogy
Think of yourself as a class called Person:
class Person {
public $name;
public function introduce() {
echo "Hi, I am " . $this->name;
}
}
$john = new Person();
$john->name = "John";
$john->introduce(); // Hi, I am John
$jane = new Person();
$jane->name = "Jane";
$jane->introduce(); // Hi, I am Jane
Here, when John speaks, $this = John.
When Jane speaks, $this = Jane.
