Heim > Artikel > Backend-Entwicklung > Was ist der Unterschied zwischen PHP4 und PHP5?
Der Unterschied zwischen PHP4 und PHP5: 1. Es gibt keinen Destruktor in PHP4, aber einen Destruktor in PHP5. 2. Wenn eine Variable an eine Funktion oder Methode in PHP4 übergeben wird, wird die Variable tatsächlich einmal kopiert, während sie in PHP5 vorhanden ist Objekte existieren immer als Referenzen.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, PHP-Version 7.1, DELL G3-Computer
Konstruktor und Destruktor
In PHP4, wenn die Funktion dieselbe ist Wenn Sie den Namen als Objekt verwenden, wird diese Funktion zum Konstruktor des Objekts, und in PHP4 gibt es kein Konzept für einen Destruktor.
In PHP5 heißt der Konstruktor einheitlich __construct und das Konzept des Destruktors wird eingeführt, das einheitlich __destruct heißt.
Beispiel 1: Konstruktor und Destruktor
class foo {undefined var $x; function __construct($x) {undefined $this->x = $x; } function display() {undefined print($this->x); } function __destruct() {undefined print("bye bye"); } } $o1 = new foo(4); $o1->display(); ?>
Wenn Sie im obigen Beispiel den Aufruf der Klasse foo beenden, wird deren Destruktor aufgerufen und im obigen Beispiel wird „bye bye“ ausgegeben.
Objektreferenz
Wie wir alle wissen, wird in PHP4 durch die Übergabe einer Variablen an eine Funktion oder Methode tatsächlich eine Kopie der Variablen erstellt, was bedeutet, dass das, was Sie an die Funktion oder Methode übergeben, eine Kopie der Variablen ist, es sei denn, Sie haben das Referenzsymbol „&“ verwendet, um anzugeben, dass Sie eine Referenz und keine Kopie erstellen möchten. In PHP5 existieren Objekte immer in Form von Referenzen, und Zuweisungsoperationen in Objekten sind ebenfalls Referenzoperationen.
Beispiel 2: Referenz eines Objekts
class foo {undefined var $x; function setX($x) {undefined $this->x = $x; } function getX() {undefined return $this->x; } } $o1 = new foo; $o1->setX(4); $o2 = $o1; $o1->setX(5); if($o1->getX() == $o2->getX()) print("Oh my god!"); ?>
Klon eines Objekts
Wie oben erwähnt: Wenn ein Objekt immer als Referenz aufgerufen wird, was soll ich tun, wenn ich eine Kopie des Objekts erhalten möchte? PHP5 bietet eine neue Funktion, nämlich das Klonen von Objekten, mit der Syntax __clone.
Beispiel 3: Objektklonen
class foo {undefined var $x; function setX($x) {undefined $this->x = $x; } function getX() {undefined return $this->x; } } $o1 = new foo; $o1->setX(4); $o2 = $o1->__clone(); $o1->setX(5); if($o1->getX() != $o2->getX()) print("Copies are independant"); ?>
Die Methode zum Klonen von Objekten gibt es in vielen anderen Anwendungssprachen, sodass Sie sich keine Sorgen um deren Stabilität machen müssen. :)
Privater, öffentlicher und geschützter Modus in Objekten
In PHP4 sind alle Methoden und Variablen eines Objekts öffentlich, was bedeutet, dass Sie jede der Variablen und Methoden außerhalb eines Objekts bedienen können. PHP5 führt drei neue Modi zur Steuerung dieser Zugriffsberechtigungen ein: Öffentlich, Geschützt und Privat.
Öffentlicher Modus (Öffentlich): Ermöglicht die Betriebssteuerung außerhalb des Objekts.
Privater Modus (Privat): Nur Methoden innerhalb dieses Objekts dürfen es bedienen und steuern.
Geschützter Modus (Geschützt): Ermöglicht diesem Objekt und seinem übergeordneten Objekt, es zu bedienen und zu steuern.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen PHP4 und PHP5?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!