Die Verwendung von self und this in PHP

墨辰丷
Freigeben: 2023-03-25 18:08:01
Original
3111 Leute haben es durchsucht

Die Funktionen von self und $this sind sehr ähnlich, aber unterschiedlich. $this kann nicht auf statische Elemente und Konstanten verweisen. self ähnelt eher der Klasse selbst und $this ähnelt eher der Instanz selbst.

1. self

1. self kann auf die statischen Eigenschaften und statischen Methoden in dieser Klasse zugreifen Statische Eigenschaften und statische Methoden in der übergeordneten Klasse. Wenn Sie self verwenden, müssen Sie

<?php  
class selfStuP{  
      static $instance;  
  
      public function __construct(){  
             self::$instance = &#39;instance&#39;; //静态属性只能通过self来访问  
      }  
  
      public function tank(){  
             return self::$instance;  //访问静态属性  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>
Nach dem Login kopieren

nicht instanziieren. Seitenausgabe: Instanz

<?php  
class selfStuP{  
      static $instance;  
  
      public function __construct(){  
             self::$instance = &#39;dell&#39;; //静态属性只能通过self来访问  
      }  
  
      static public function pentium(){  
             return self::$instance;  //静态方法也可以继续访问静态变量,访问时需  
要加$  
      }  
  
      public function tank(){  
             return self::pentium();  //访问静态属性  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>
Nach dem Login kopieren

2 kann auf Konstantendefinitionen zugreifen. Die Konstante

<?php  
class selfStuP{  
      const NAME = &#39;tancy&#39;;  
  
      public function tank(){  
             return self::NAME;  
      }  
}  
  
$str = new selfStuP();  
echo $str->tank();  
echo "\n";  
?>
Nach dem Login kopieren
Seitenausgabe: tancy

2.this

1.Das Aufrufen von Methoden und Attributen in dieser Klasse kann auch das Aufrufen einstellbarer Methoden und Attribute in der übergeordneten Klasse sein. Man kann sagen, dass mit Ausnahme von statischen und konstanten Konstanten im Grunde alles andere damit kontaktiert werden kann

<?php  
  
        class thisStu{  
              public $public;  
              private $private;  
              protected $protected;  
  
              public function __construct(){  
                     $this->public =  &#39;public&#39;;  
                     $this->private = &#39;private&#39;;  
                     $this->protected = &#39;protected&#39;;  
              }  
  
              public function tank(){  
                     return $this->public;  
              }  
  
              public function dell(){  
                     return $this->private;  
              }  
  
              public function datesrt(){  
                     return $this->protected;  
              }  
  
        }  
  
        $str = new thisStu();  
        echo $str->tank();  
        echo "\n";  
        echo $str->dell();  
        echo "\n";  
        echo $str->datesrt();  
        echo "\n";  
  
?>
Nach dem Login kopieren
Seitenausgabe: öffentlich

privat

geschützt



Zusammenfassung:

In einem Satz ist self der Klassenname das bezieht sich auf die statische Klasse und $this ist der Instanzname, der sich auf die nicht statische Klasse bezieht.

Verwandte Empfehlungen:

Die Unterschiede zwischen self, static, $this in PHP und detaillierte Erklärung der späten statischen Bindung

Detaillierte Erläuterung der Verwendung von $this und Zugriffsqualifizierern in PHP

Detaillierte Erläuterung des Unterschieds zwischen self und $this in PHP

Das obige ist der detaillierte Inhalt vonDie Verwendung von self und this in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage