Saturday, November 22, 2025
HomeLanguagesWhat is the difference between self and $this ?

What is the difference between self and $this ?

The keyword self is used to refer to the current class itself within the scope of that class only whereas, $this is used to refer to the member variables and function for a particular instance of a class.

self operator: self operator represents the current class and thus is used to access class variables or static variables because these members belong to a class rather than the object of that class.
Syntax:

self::$static_member

$this operator: $this, as the ‘$’ sign suggest, is an object. $this represents the current object of a class. It is used to access non-static members of a class.
Syntax:

$that->$non_static_member;

When to use self over $this in PHP:

Example:

PHP




<?php
    class StudentDetail{
    
        public $name;
        public static $age;
  
        public function getName() {
            return $this->name;
        }
       
        public static function getAge() {
            return self::$age;
        }
          
        public function getStudentAge() {
            return self::getAge();
        }
    }
      
    $obj = new StudentDetail();
  
    $obj->name = "GFG";
  
    StudentDetail::$age = "18";
  
    echo "Name : " .$obj->getName()."\xA";
    echo "Age  : " .StudentDetail::getStudentAge();
  
?>


Output

Name : GFG
Age  : 18

Difference between self and $this:

self

$this

The self keywоrd is nоt рreсeded by аny symbоl, we can use it as it is. this keyword should be antecedent with a $ symbol whenever referring to the class members.
In order to access class variables and methods, a scope resolution operator is used. In order to access class variables and methods, an arrow operator ( -> ) is used.
The self keyword is used to access the static members of the class present in the program. $this is used to access the non-static members of the class present in the program.
Self keyword refers to the class members, but doesn’t point toward any particular object of the class.   $this could refer to the member variables and function for a selected instance of the class.
RELATED ARTICLES

Most Popular

Dominic
32407 POSTS0 COMMENTS
Milvus
97 POSTS0 COMMENTS
Nango Kala
6784 POSTS0 COMMENTS
Nicole Veronica
11930 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11999 POSTS0 COMMENTS
Shaida Kate Naidoo
6907 POSTS0 COMMENTS
Ted Musemwa
7168 POSTS0 COMMENTS
Thapelo Manthata
6863 POSTS0 COMMENTS
Umr Jansen
6847 POSTS0 COMMENTS