The self and this are two different operators which are used to represent current class and current object respectively. self is used to access static or class variables or methods and this is used to access non-static or object variables or methods.
So use self when there is a need to access something which belongs to a class and use $this when there is a need to access a property belonging to the object of the class.
self operator: self operator represents the current class and thus is used to access class variables or static variables because these members belongs to a class rather than the object of that class.
Example 1: This is the basic example which shows the use of self operator.
Example 2: This example is a demo of exploiting polymorphic behavior in php using self.
Here the parent class method runs because the self operator represents the class, thus we see that the main class method is the method of the parent class only.
$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.
Example 1: This is the basic example which shows the use of $this operator.
Example 2: This example is a demo of polymorphic behavior in php using self.
Here, there is no reference to any class and the object which is pointing the child class is calling the method defined in the child class. This is an example of dynamic polymorphism in PHP.
- New self vs. new static in PHP
- How to create a PHP form that submit to self ?
- Difference between self::$bar and static::$bar in PHP
- CSS | align-self Property
- HTML | Window self( ) Property
- Scala | Self types Annotation
- What is POST(Power-On-Self-Test)?
- CSS place-self Property
- Implementing Self Organizing List in Java
- What is the use of the @ symbol in PHP?
- How to use a switch case 'or' in PHP?
- What is the use of “=>” symbol in PHP ?
- When to use static vs instantiated classes in PHP?
- How to use bcrypt for hashing passwords in PHP?
- How to use PHP OPCache ?
- How to use php serialize() and unserialize() Function
- Why require_once() function is so bad to use in PHP ?
- Why use Guzzle Instead of cURL in PHP ?
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.