
In PHP, the keyword $this
is used to refer to the current instance of the class, while the keyword self
is used to refer to the class itself.
You should use $this
when referring to instance-level properties or methods within the same class, such as when accessing a property of the current object or calling a method of the current object.
For example:
class MyClass { private $name; public function __construct($name) { $this->name = $name; } public function sayHello() { echo "Hello, my name is " . $this->name; } } $obj = new MyClass("John"); $obj->sayHello(); // output: "Hello, my name is John"
On the other hand, you should use self
when referring to static properties or methods within the same class, such as when accessing a static property or calling a static method of the class.
For example:
class MyClass { private static $count = 0; public function __construct() { self::$count++; } public static function getCount() { return self::$count; } } $obj1 = new MyClass(); $obj2 = new MyClass(); echo MyClass::getCount(); // output: 2
In summary, $this
is used for instance-level properties and methods, while self
is used for static properties and methods.