Heim > Backend-Entwicklung > PHP-Tutorial > Vergleich von Singletons und statischen Methoden in PHP objektorientiert und Analyse des automatischen Ladens von Klassen

Vergleich von Singletons und statischen Methoden in PHP objektorientiert und Analyse des automatischen Ladens von Klassen

PHP中文网
Freigeben: 2016-08-08 09:32:38
Original
1224 Leute haben es durchsucht

Statische Methoden:

Beispiel

class A{
	public static function a(){
		# code ...
	}
	public static function b(){
		# code ...
	}
}
// 使用
A::a();
A::b();
Nach dem Login kopieren


Wenn das Skript interpretiert wird, werden statische Methoden in den Speicher geladen (und in einer einzigen Kopie gespeichert). ). Sie können es wie eine Funktion verwenden.

Einzelfall:

Um zu realisieren, dass nur eine einzige Kopie einer Klasse im Speicher gespeichert ist, wird ein Entwurfsmuster durch Code unter Verwendung statischer Variablen implementiert

Beispiel

class Container(){
	protected static $loadedSingletonClasses = [];
	public static function loadSingletonClass($className=''){
		if(!isset(self::$loadSingletonClass[$className])){
			self::$loadSingletonClass[$className] = new $className;
		}
		return self::$loadSingletonClass[$className];
	}
}
$a = Container::loadSingletonClass("foo\bar\MyClass");
$b = Container::loadSingletonClass("foo\bar\MyClass");
Nach dem Login kopieren


Die $a $b-Variablen im obigen Code verweisen auf dieselbe Speicheradresse (aber wenn Sie die Klasse auslösen möchten durch diese beiden Variablen instanziiert Der Destruktor muss alle diese beiden Variablen zerstören. Weitere Informationen finden Sie in der Wissenszusammenfassung in PHP objektorientiert)

Der Unterschied zwischen Singletons und statischen Methoden ist statisch Methoden werden Das Skript wird in den Speicher geladen, wenn es interpretiert wird. Der Singleton wird nur in den Speicher geladen, wenn er neu ist (vorausgesetzt, dass beide Codes in den Speichercodebereich geladen werden)

Automatisches Laden:

Es gibt eine Erklärung zum automatischen Laden (dem Implementierungsmechanismus des automatischen Ladens in PHP) vor

Geerbte Klassen, Schnittstellen-Unterklasse erweitert übergeordnete Klasse{}

Zu diesem Zeitpunkt wird die automatische Ladefunktion ausgelöst :

Wenn wir use verwenden, um die Klasse mit einem Alias ​​zu versehen, ist der übergebene Klassenname auch die Klasse vor dem Alias.

Das Obige führt den Vergleich zwischen Singleton- und statischen Methoden in PHP objektorientiert ein Die Analyse des automatischen Ladens von Klassen, einschließlich Aspekten, finden Sie auf der chinesischen PHP-Website (www.php.cn).

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