What is $this Variable Vs self?

What is $this Variable Vs self?

$this is a pseudo-variable which is a reference to the current object.

$this is mostly used in object oriented code.

$this variable is used to call non-static method, if you are trying to call static method then it will throw the error that means $this variable is not available inside the static method.

Error that you will get while calling a static property or method using $this variable :

Fatal error: Uncaught Error: Using $this when not in object context in .. on line
Note:  Calling non-static methods statically in PHP 7 is deprecated that will generate an E_DEPRECATED warning. So i assume it may be removed in the future to call non-static methods statically.
  1. <?php
  2. class Product {
  3.     public $name='ExpertPHP';
  4.     public function aNonStaticMethod() {
  5.         echo $this->name;
  6.     }
  7. }
  8. $p1 = new Product();
  9. $p1->aNonStaticMethod();
  10. ?>

In above example, i have created a Product class with non static method and initialize a object to call aNonStaticMethod to display name property which is declared as public. Here i use $this variable to access public property declared within class.

self keyword

As you notice, this keyword is proceed with $ sign but self keyword is not proceed with any symbol.

With self keyword, you use scope resolution operator.

self keyword with scope resolution operator (::) you can call static method or properties of a class.

self keyword basically refer to current class name within a class.

Example :
  1. <?php
  2. class Product {
  3.     public static $name='ExpertPHP';
  4.     public function display() {
  5.         echo self::$name;
  6.     }
  7. }
  8. $p1 = new Product();
  9. $p1->display();
  10. ?>

In above example, you can see i have defined a name property as static and to access static property i use self keyword.

Phone: (+91) 8800417876
Noida, 201301
sakarya escort sakarya escort sakarya escort bayan sakarya escort serdivan escort sakarya escort sakarya escort serdivan escort
karasu escort akyazı escort serdivan escort akyazı escort ferizli escort sapanca escort serdivan escort söğütlü escort sakarya escort izmit escort arifiye escort erenler escort hendek escort kocaali escort pamukova escort taraklı escort geyve escort