Heim >Backend-Entwicklung >PHP-Problem >Was ist der Unterschied zwischen this und self in PHP?
Der Unterschied zwischen this und self in PHP ist: self ruft die Klasse auf, während $this das instanziierte Objekt aufruft. self kann auf statische Eigenschaften und statische Methoden in dieser Klasse sowie auf durch const definierte Konstanten zugreifen und dadurch Methoden und Eigenschaften in dieser Klasse aufrufen.
Unterschied:
self ruft die Klasse auf, während $this das instanziierte Objekt aufruft.
(Empfohlenes Tutorial: php-Tutorial )
Lassen Sie es uns unten im Detail erklären:
1 Selbst kann in dieser Klasse auf Static zugreifen Eigenschaften und statische Methoden können auf statische Eigenschaften und statische Methoden in der übergeordneten Klasse zugreifen. Wenn Sie self verwenden, müssen Sie es nicht instanziieren.
Codebeispiel:
class self_test { static $instance; public function __construct(){ self::$instance = 'instance';//静态属性只能通过self来访问 } public function tank(){ return self::$instance;//访问静态属性 } } $str = new self_test(); echo $str->tank();
Ergebnisausgabe:
instance
2. self kann auf durch const definierte Konstanten zugreifen
Codebeispiel:
class self_test { const NAME = 'tancy'; public function tank(){ return self::NAME; } } $str = new self_test(); echo $str->tank();
3. Dies kann grundsätzlich Methoden und Attribute in dieser Klasse oder aufrufbare Methoden und Attribute in der übergeordneten Klasse aufrufen.
Codebeispiel:
class self_test { 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 self_test(); echo $str->tank(); echo "</br>"; echo $str->dell(); echo "</br>"; echo $str->datesrt();
Ergebnis:
public private protected
Zusammenfassung: self ist der Klassenname, der auf die statische Klasse verweist, und $this ist der Instanzname, der auf die verweist nicht statische Klasse.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen this und self in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!