Heim > Backend-Entwicklung > PHP-Problem > Detaillierte Einführung in den Unterschied und die Verwendung von self und dies in PHP

Detaillierte Einführung in den Unterschied und die Verwendung von self und dies in PHP

王林
Freigeben: 2023-02-23 17:18:02
Original
3966 Leute haben es durchsucht

Detaillierte Einführung in den Unterschied und die Verwendung von self und dies in PHP

Der Unterschied zwischen this und self-Schlüsselwörtern in PHP:

1. self repräsentiert die Klasse, $this repräsentiert das Objekt
2 . Kann „$this“ verwendet werden, darf „self“ nicht verwendet werden. 3. Auf statische Methoden kann nicht zugegriffen werden.

Verwendung der Schlüsselwörter this und self in PHP:

self ist der Klassenname, der sich auf die statische Klasse bezieht, und $this bezieht sich auf die Instanz von der nicht statische Klassenname.

Statische Eigenschaften und Methoden können nur auf statische Eigenschaften und Methoden zugreifen, und auf nicht statische Eigenschaften und Methoden kann nicht über Klassen zugegriffen werden.

Denn wenn statische Eigenschaften und Methoden erstellt werden, gibt es möglicherweise keine Instanzen dieser Klasse, die aufgerufen werden können.

Statische Attribute haben nur eine Kopie im Speicher und werden von allen Instanzen gemeinsam genutzt.

Verwenden Sie das Schlüsselwort

, um auf statische Mitglieder der aktuellen Klasse zuzugreifen. self::

Alle Instanzen einer Klasse teilen statische Eigenschaften in der Klasse.

Mit anderen Worten: Selbst wenn mehrere Instanzen im Speicher vorhanden sind, gibt es nur eine Kopie der statischen Attribute.

Im folgenden Beispiel wird ein Zähler-$count-Attribut mit privaten und statischen Änderungen festgelegt.

Auf diese Weise kann die Außenwelt nicht direkt auf das Attribut $count zugreifen. Als Ergebnis der Programmausführung sehen wir auch, dass mehrere Instanzen dasselbe statische $count-Attribut verwenden.

<?php    
class user  
{    
   private static $count = 0 ; //记录所有用户的登录情况.    
   public function __construct() {    
       self::$count = self::$count + 1;    
   }    
   public function getCount() {      
       return self::$count;    
   }    
   public function __destruct() {    
       self::$count = self::$count - 1;    
   }    
}    
$user1 = new user();    
$user2 = new user();    
$user3 = new user();    
echo "now here have " . $user1->getCount() . " user";    
echo "<br />";    
unset($user3);    
echo "now here have " . $user1->getCount() . " user";    
?>
Nach dem Login kopieren

 


Statische Eigenschaften werden direkt aufgerufen

Statische Eigenschaften können direkt ohne Instanziierung verwendet werden, bevor die Klasse erstellt wird direkt verwendet. Die Methode zur Verwendung von

lautet: Klassenname::statischer Attributname

<?php    
class Math  
{    
   public static $pi = 3.14;    
}    
// 求一个半径3的园的面积。    
$r = 3;    
echo "半径是 $r 的面积是<br />";    
echo Math::$pi * $r * $r;    
echo "<br /><br />";    
//这里我觉得 3.14 不够精确,我把它设置的更精确。    
Math::$pi = 3.141592653589793;    
echo "半径是 $r 的面积是<br />";    
echo Math::$pi * $r * $r;      
?>
Nach dem Login kopieren


Die Klasse wird nicht erstellt und die statischen Attribute können direkt verwendet werden.

Statische Methoden

Statische Methoden können direkt verwendet werden, ohne dass die Klasse instanziiert wird.

Die verwendete Methode ist Klassenname::statischer Methodenname

Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website:

PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Unterschied und die Verwendung von self und dies 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