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 = 'instance'; //静态属性只能通过self来访问 } public function tank(){ return self::$instance; //访问静态属性 } } $str = new selfStuP(); echo $str->tank(); echo "\n"; ?>
nicht instanziieren. Seitenausgabe: Instanz
<?php class selfStuP{ static $instance; public function __construct(){ self::$instance = 'dell'; //静态属性只能通过self来访问 } static public function pentium(){ return self::$instance; //静态方法也可以继续访问静态变量,访问时需 要加$ } public function tank(){ return self::pentium(); //访问静态属性 } } $str = new selfStuP(); echo $str->tank(); echo "\n"; ?>
2 kann auf Konstantendefinitionen zugreifen. Die Konstante
<?php class selfStuP{ const NAME = 'tancy'; public function tank(){ return self::NAME; } } $str = new selfStuP(); echo $str->tank(); echo "\n"; ?>
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 = 'public'; $this->private = 'private'; $this->protected = 'protected'; } 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"; ?>
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!